Я хотел бы понять, как работает встроенная функция 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
?
Я смущен.