@propertyデコレータはPythonでどのように機能しますか?

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

組み込み関数propertyがどのように機能するかを理解したいと思います。私を混乱させるのは、 property はデコレータとしても使用できるということですが、デコレータとして使用する場合ではなく、組み込み関数として使用する場合にのみ引数を取ります。

例は、ドキュメントからのものです:

 クラスC:def __init __(self):self._x=なしdefgetx(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"の引数はgetx setx delx 、およびdoc文字列。

以下のコードでは、 propertyがデコレータとして使用されています。 。そのオブジェクトはx関数ですが、上記のコードでは、引数にオブジェクト関数を配置する場所がありません。

  class C: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  

x.setterxはどうですかこの場合に作成された.deleterデコレータ?