Я хотел бы понять, как работает встроенная функция property. Меня смущает то, что property также можно использовать в качестве декоратора, но он принимает только аргументы при использовании в качестве встроенной функции, а не при использовании в качестве декоратора.
Этот пример приведен из документации:
class C(object):
    def __init__(self):
        self._x = None
    def getx(self):
        return self._x
    def setx(self, value):
        self._x = value
    def delx(self):
        del self._x
    x = property(getx, setx, delx, "I'm the 'x' property.")
 property аргументы getx, setx, delx и строка doc.
В приведенном ниже коде property используется как декоратор. Объектом этого является функция x, но в приведенном выше коде в аргументах нет места для функции объекта.
class C(object):
    def __init__(self):
        self._x = None
    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x
    @x.setter
    def x(self, value):
        self._x = value
    @x.deleter
    def x(self):
        del self._x
И как создаются декораторы x.setter и x.deleter?
Я смущен.

