Me gustaría entender cómo funciona la función integrada property
. Lo que me confunde es que property
también se puede usar como decorador, pero solo toma argumentos cuando se usa como una función integrada y no cuando se usa como decorador.
Esto el ejemplo es de la documentación:
clase C: def __init__(self): self._x = Ninguno def getx(self): return self._x def setx(self, valor): self._x = valor def delx(self): del self._x x = property(getx, setx, delx, "Soy la propiedad "x".)
propiedad
Los argumentos son getx
, setx
, delx
y una cadena de documentos.
En el siguiente código, property
se usa como decorador . El objeto de esto es la función x
, pero en el código anterior no hay lugar para una función de objeto en los argumentos.
class C: def __init__(self ): self._x = Ninguno @property def x(self): """Soy la propiedad "x"."" return self._x @x.setter def x(self, value ): self._x = valor @x.deleter def x(self): del self._x
Cómo son el x.setter
y x .deleter
decoradores creados en este caso?