¿Cómo funciona el decorador de propiedad?
Me gustaría entender cómo funciona la función incorporada.property
trabajos. Lo que me confunde es queproperty
también se puede usar como decorador, pero solo toma argumentos cuando se usa como una función incorporada y no cuando se usa como decorador.
Este ejemplo es de ladocumentación:
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
los argumentos songetx
, setx
, delx
y una cadena de documentos.
En el código de abajoproperty
Se utiliza como decorador. El objeto de ello es elx
función, pero en el código anterior no hay lugar para una función de objeto en los argumentos.
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
Y como estanx.setter
yx.deleter
decoradores creados? Estoy confundido.