पाठ 28 / 47
क्लास और स्टैटिक मेथड
वे मेथड जो किसी विशेष इंस्टेंस के नहीं, बल्कि क्लास के होते हैं।
@classmethod बनाम @staticmethod
@classmethod इंस्टेंस की जगह क्लास (cls) प्राप्त करता है — अक्सर वैकल्पिक कंस्ट्रक्टर के लिए उपयोग होता है। @staticmethod न इंस्टेंस, न क्लास लेता है, बस क्लास के अंदर समूहित एक फ़ंक्शन है।
class Pizza:
def __init__(self, toppings):
self.toppings = toppings
@classmethod
def margherita(cls):
return cls(["mozzarella", "basil"])
@staticmethod
def is_valid_topping(name):
return isinstance(name, str) and len(name) > 0
p = Pizza.margherita()
print(p.toppings)
print(Pizza.is_valid_topping("basil"))त्वरित जाँच: कौन-सा decorator किसी मेथड को बिना मौजूदा ऑब्जेक्ट के नया इंस्टेंस बनाने देता है?
- @staticmethod
- @classmethod
- @property
Answer
@classmethod — @classmethod खुद क्लास (cls) प्राप्त करता है और नया इंस्टेंस बना कर लौटा सकता है।