@property 裝飾器在 Python 中是如何工作的?

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

我想了解內置函數 property 的工作原理。讓我困惑的是 property 也可以用作裝飾器,但它只在用作內置函數時才接受參數,而不是在用作裝飾器時。

這個示例來自 文檔

class C: 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"的參數是 getxsetxdelx 和一個文檔字符串。

在下面的代碼中,property 用作裝飾器.它的對像是 x 函數,但在上面的代碼中,參數中沒有對象函數的位置。

class C: def __init__(self ): self._x = None @property def x(self): """"我是 "x" 屬性。"""" return self._x @x.setter def x(self, value ): self._x = value @x.deleter def x(self): del self._x 

x.setterx怎麼樣.deleter 在這種情況下創建的裝飾器?