@property dekoratörü Python’da nasıl çalışır?

| | | | | | | | | | | |

Yerleşik özellik işlevinin nasıl çalıştığını anlamak istiyorum. Kafamı karıştıran şey, özellik`in dekoratör olarak da kullanılabilmesi, ancak dekoratör olarak kullanıldığında değil, yalnızca yerleşik bir işlev olarak kullanıldığında argümanları alıyor.

Bu örnek belgelerinden:

sınıf C: def __init__(self): self._x = Yok def getx(self): dönüş self._x def setx(self, değer): self._x = değer def delx(self): del self._x x = property(getx, setx, delx, "Ben" "x" özelliğiyim.") 

property"lerin argümanları getx< şeklindedir. /code>, setx, delx ve bir belge dizesi.

Aşağıdaki kodda dekoratör olarak özellik kullanılır . Bunun nesnesi x işlevidir, ancak yukarıdaki kodda argümanlarda nesne işlevine yer yoktur.

class C: def __init__(self ): self._x = Yok @property def x(self): """Ben" x" özelliğiyim.""" return self._x @x.setter def x(self, value ): self._x = değer @x.deleter def x(self): del self._x 

x.setter ve x nasıl? .deleter dekoratörleri bu durumda mı oluşturuldu?