Chciałbym zrozumieć, jak działa wbudowana funkcja właściwość
. To, co mnie dezorientuje, to fakt, że właściwość
może być również używana jako dekorator, ale pobiera argumenty tylko wtedy, gdy jest używana jako funkcja wbudowana, a nie jako dekorator.
To przykład pochodzi z dokumentacji:
class C: def __init__(self): self._x = Brak def getx(self): return self._x def setx(self, value): self._x = wartość def delx(self): del self._x x = property(getx, setx, delx, „Jestem właściwością „x”.)
Argumenty property
” to getx
, setx
, delx
i dokumentacja.
W poniższym kodzie właściwość
jest używana jako dekorator . Jej obiektem jest funkcja x
, ale w powyższym kodzie nie ma miejsca na funkcję obiektu w argumentach.
class C: def __init__(self ): self._x = Brak @property def x(self): „”„Jestem właściwością „x”.„„” return self._x @x.setter def x(self, value ): self._x = wartość @x.deleter def x(self): del self._x
Jak się mają x.setter
i x .deleter
utworzone w tym przypadku?