@property डेकोरेटर
गेटर, सेटर और डिलीटर के लिए property का उपयोग करें।
@property डेकोरेटर, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
परिचय
@property क्यों
class Circle:
def __init__(self, r): self._r = r
@property
def radius(self): return self._r
c = Circle(5)
print(c.radius) # no ()गणना किए गए प्रॉपर्टी
import math
class Circle:
def __init__(self, r): self._r = r
@property
def area(self): return math.pi * self._r**2
c = Circle(5)
print(round(c.area, 2))प्रॉपर्टी सेटर
class Circle:
def __init__(self, r): self._r = r
@property
def radius(self): return self._r
@radius.setter
def radius(self, val):
if val <= 0: raise ValueError('radius must be positive')
self._r = val
c = Circle(5)
c.radius = 10
print(c.radius)प्रॉपर्टी डिलीटर
class User:
def __init__(self, name): self._name = name
@property
def name(self): return self._name
@name.deleter
def name(self): del self._name
u = User('Alice')
del u.name
print(hasattr(u, '_name'))केवल-पठन प्रॉपर्टी
class Const:
def __init__(self, v): self._v = v
@property
def value(self): return self._v
c = Const(42)
print(c.value)
try: c.value = 99
except AttributeError as e: print(e)सत्यापन वाली प्रॉपर्टी
class BoundedInt:
def __init__(self, lo, hi): self.lo,self.hi=lo,hi; self._v=lo
@property
def value(self): return self._v
@value.setter
def value(self, v):
if not self.lo <= v <= self.hi:
raise ValueError(f'{v} out of [{self.lo},{self.hi}]')
self._v = v
b = BoundedInt(0, 10)
b.value = 5
print(b.value)प्रॉपर्टी के साथ कैशिंग
class Expensive:
_cache = None
@property
def result(self):
if self._cache is None:
self._cache = sum(range(1000))
return self._cache
e = Expensive()
print(e.result)
print(e.result)cached_property (Python 3.8+)
from functools import cached_property
import math
class Circle:
def __init__(self, r): self.r = r
@cached_property
def area(self): return math.pi * self.r**2
c = Circle(5)
print(round(c.area, 2))प्रॉपर्टी बनाम __slots__
class Point:
__slots__ = ('_x', '_y')
def __init__(self, x, y): self._x,self._y=x,y
@property
def x(self): return self._x
p = Point(1, 2)
print(p.x)@property का उपयोग कब करें
# Before: class Person:
# def __init__(self, age): self.age = age
# After: add validation without changing caller code
class Person:
def __init__(self, age): self.age = age
@property
def age(self): return self._age
@age.setter
def age(self, v):
if v < 0: raise ValueError('negative age')
self._age = v
p = Person(30)
print(p.age)त्वरित जाँच
पुनरावलोकन
आगे बढ़ते रहें
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “@property डेकोरेटर” पाठ निःशुल्क है?
हाँ—“@property डेकोरेटर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“@property डेकोरेटर” में मैं क्या सीखूँगा?
गेटर, सेटर और डिलीटर के लिए property का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“@property डेकोरेटर” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- फ़ंक्शन फ़र्स्ट-क्लास ऑब्जेक्ट के रूप में
- कस्टम डेकोरेटर लिखना
- @property डेकोरेटर
- @classmethod और @staticmethod