code: def AddProperty(self, interface, name, value):
          '''Add property to this object
  
          interface: D-Bus interface to add this to. For convenience you can
                     specify '' here to add the property to the object's main
                     interface (as specified on construction).
          name: Property name.
          value: Property value.
          '''
          if not interface:
              interface = self.interface
          try:
              self.props[interface][name]
              raise dbus.exceptions.DBusException(
                  'property %s already exists' % name,
                  name=self.interface + '.PropertyExists')
          except KeyError:
              # this is what we expect
              pass
  
          # copy.copy removes one level of variant-ness, which means that the
          # types get exported in introspection data correctly, but we can't do
          # this for container types.
          if not (isinstance(value, dbus.Dictionary) or isinstance(value, dbus.Array)):
              value = copy.copy(value)
  
          self.props.setdefault(interface, {})[name] = valuf AddProperty(self, interface, name, value):
          '''Add property to this object
  
          interface: D-Bus interface to add this to. For convenience you can
                     specify '' here to add the property to the object's main
                     interface (as specified on construction).
          name: Property name.
          value: Property value.
          '''
          if not interface:
              interface = self.interface
          try:
              self.props[interface][name]
              raise dbus.exceptions.DBusException(
                  'property %s already exists' % name,
                  name=self.interface + '.PropertyExists')
          except KeyError:
              # this is what we expect
              pass
  
          # copy.copy removes one level of variant-ness, which means that the
          # types get exported in introspection data correctly, but we can't do
          # this for container types.
          if not (isinstance(value, dbus.Dictionary) or isinstance(value, dbus.Array)):
              value = copy.copy(value)
  
          self.props.setdefault(interface, {})[name] = value
docs: Add property to this object
  
          interface: D-Bus interface to add this to. For convenience you can
                     specify '' here to add the property to the object's main
                     interface (as specified on construction).
          name: Property name.
          value: Property value.