पायथन में @property डेकोरेटर कैसे काम करता है?

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

मैं यह समझना चाहता हूं कि बिल्ट-इन फ़ंक्शन प्रॉपर्टी कैसे काम करता है। जो मुझे भ्रमित करता है वह यह है कि संपत्ति को एक डेकोरेटर के रूप में भी इस्तेमाल किया जा सकता है, लेकिन यह केवल एक अंतर्निहित फ़ंक्शन के रूप में उपयोग किए जाने पर तर्क लेता है न कि जब एक डेकोरेटर के रूप में उपयोग किया जाता है।

यह उदाहरण दस्तावेज से है:

वर्ग C: def __init__(self): self._x = कोई नहीं def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del self._x x = properties(getx, setx, delx, "I"m the "x" property.") 

property"s तर्क getx< हैं /code>, setx, delx और एक doc string.

नीचे दिए गए कोड में property का प्रयोग डेकोरेटर के रूप में किया जाता है . इसका उद्देश्य x फ़ंक्शन है, लेकिन ऊपर दिए गए कोड में तर्कों में ऑब्जेक्ट फ़ंक्शन के लिए कोई जगह नहीं है।

वर्ग C: def __init__(self ): self._x = कोई नहीं @property def x(self): """मैं "x" गुण हूं।""" स्व._x @x.setter def x (स्व, मान) लौटाएं ): self._x = मान @x.deleter def x(self): del self._x 

x.setter और x कैसे हैं .deleter इस मामले में सज्जाकार बनाए गए?