Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में क्लास या स्टेटिक वेरिएबल्स

जब किसी क्लास के अंदर लेकिन किसी मेथड के बाहर वेरिएबल घोषित किया जाता है, तो उसे क्लास वेरिएबल या स्टेटिक वेरिएबल कहा जाता है। यह सभी इंस्टेंसेज़ द्वारा साझा किया जाता है।

उदाहरण 1: काउंटर के रूप में उपयोग

class Fruits:
    count = 0  # क्लास वेरिएबल

    def __init__(self, name, count):
        self.name = name
        self.count = count          # इंस्टेंस वेरिएबल (क्लास वेरिएबल को शैडो करता है)
        Fruits.count = Fruits.count + count  # क्लास वेरिएबल अपडेट

def main():
    apples = Fruits("apples", 3)
    pears = Fruits("pears", 4)

    print(apples.count)      # 3 (इंस्टेंस वेरिएबल)
    print(pears.count)       # 4 (इंस्टेंस वेरिएबल)
    print(Fruits.count)      # 7 (क्लास वेरिएबल)
    print(apples.__class__.count)  # 7
    print(type(pears).count)       # 7

if __name__ == '__main__':
    main()

आउटपुट

3
4
7
7
7

उदाहरण 2: क्लास वेरिएबल एक्सेस और शैडोइंग

class Example:
    staticVariable = 9

# क्लास के माध्यम से एक्सेस
print(Example.staticVariable)  # 9

# इंस्टेंस के माध्यम से एक्सेस (क्लास वेरिएबल पढ़ता है)
instance = Example()
print(instance.staticVariable)  # 9

# इंस्टेंस पर असाइनमेंट - नया इंस्टेंस वेरिएबल बनाता है!
instance.staticVariable = 12
print(instance.staticVariable)  # 12 (इंस्टेंस वेरिएबल)
print(Example.staticVariable)   # 9 (क्लास वेरिएबल अपरिवर्तित)

आउटपुट

9
9
12
9

मुख्य बिंदु

  • क्लास वेरिएबल: ClassName.variable के माध्यम से एक्सेस/बदलें। सभी इंस्टेंसेज़ साझा करते हैं।
  • इंस्टेंस वेरिएबल: self.variable के माध्यम से एक्सेस/बदलें। प्रत्येक इंस्टेंस का अपना होता है।
  • शैडोइंग: instance.variable = value क्लास वेरिएबल को नहीं बदलता, बल्कि इंस्टेंस के लिए नया एट्रिब्यूट बनाता है।
  • पढ़ते समय पायथन पहले इंस्टेंस `__dict__` जांचता है, फिर क्लास `__dict__`।

सर्वोत्तम अभ्यास

  • क्लास वेरिएबल बदलने के लिए हमेशा ClassName.variable = value का उपयोग करें।
  • साझा कॉन्फ़िगरेशन, काउंटर्स, कॉन्स्टेंट्स के लिए क्लास वेरिएबल्स का उपयोग करें।
  • इंस्टेंस-विशिष्ट डेटा के लिए केवल इंस्टेंस वेरिएबल्स (self.x) का उपयोग करें।
  1. पायथन में इनहेरिटेंस (Inheritance) पायथन में इनहेरिटेंस (Inheritance)

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में इनहेरिटेंस और क्लासेस को एक्सटेंड करने के बारे में जानेंगे।इनहेरिटेंस वास्तविक दुनिया के संबंधों को अच्छी तरह से दर्शाता है, पुन: प्रयोज्यता प्रदान करता है और ट्रांजिटिविटी का समर्थन करता है। यह तेज़ विकास समय, आसान रखरखाव और विस्तार में आसानी प्र

  1. - पायथन क्लास में स्टेटिक मेथड्स क्या हैं?

    किसी भी पायथन क्लास में तीन प्रकार के मेथड्स होते हैं: इंस्टेंस मेथड्स, क्लास मेथड्स और स्टेटिक मेथड्स।उदाहरणनिम्न कोड पर विचार करें:class OurClass:\n def method(self):\n return instance method called, self\n @classmethod\n def classmethod(cls):\n return class method called, c

  1. - Python में क्लास वेरिएबल्स को सही तरीके से कैसे डिफाइन करें?

    क्लास वेरिएबल्स वे वेरिएबल्स हैं जो __init__ मेथड के बाहर डिक्लेयर किए जाते हैं। ये स्टैटिक एलिमेंट्स हैं, अर्थात वे क्लास से संबंधित होते हैं न कि क्लास इंस्टेंस से। ये क्लास वेरिएबल्स उस क्लास के सभी इंस्टेंस द्वारा शेयर किए जाते हैं। क्लास वेरिएबल्स के लिए उदाहरण कोड: उदाहरण class MyClass: __