'Initialize the decorator used to mark properties of a
`dbus.service.Object`.
:Parameters:
`dbus_interface` : str
The D-Bus interface owning the property
`signature` : str
The signature of the property in the usual D-Bus notation. The
signature must be suitable to be carried in a variant.
`property_name` : str
A name for the property. Defaults to the name of the getter or
setter function.
`emits_changed_signal` : True, False, "invalidates", or None
Tells for introspection if the object emits PropertiesChanged
signal.
`fget` : func
Getter function taking the instance from which to read the
property.
`fset` : func
Setter function taking the instance to which set the property
and the property value.
`doc` : str
Documentation string for the property. Defaults to documentation
string of getter function.
:Since: 1.3.0'

def __init__(self, dbus_interface=None, signature=None, property_name=None, emits_changed_signal=None, fget=None, fset=None, doc=None):

    validate_interface_name(dbus_interface)
    self._dbus_interface = dbus_interface
    self._init_property_name = property_name
    if (property_name is None):
        if (fget is not None):
            property_name = fget.__name__
        elif (fset is not None):
            property_name = fset.__name__
    if property_name:
        validate_member_name(property_name)
    self.__name__ = property_name
    self._init_doc = doc
    if ((doc is None) and (fget is not None)):
        doc = getattr(fget, '__doc__', None)
    self.fget = fget
    self.fset = fset
    self.__doc__ = doc
    self._emits_changed_signal = emits_changed_signal
    if (len(tuple(Signature(signature))) != 1):
        raise ValueError('signature    must    have    only    one    item')
    self._dbus_signature = signature
