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

पायथन में उदाहरणों के बीच साझा किए गए वर्ग डेटा से बचना

जब हम पायथन में एक वर्ग को तत्काल करते हैं, तो उसके सभी चर और कार्य भी नए तत्काल वर्ग को विरासत में मिलते हैं। लेकिन ऐसे अवसर भी हो सकते हैं जब हम नहीं चाहते कि मूल वर्ग के कुछ चर बाल वर्ग को विरासत में मिले। इस लेख में, हम ऐसा करने के दो तरीके तलाशेंगे।

तत्काल उदाहरण

नीचे दिए गए उदाहरण में हम दिखाते हैं कि किसी दिए गए वर्ग से चर को कैसे गर्म किया जाता है और कैसे सभी तात्कालिक वर्गों में चर साझा किए जाते हैं।

class MyClass:
   listA= []

# Instantiate Both the classes
x = MyClass()
y = MyClass()

# Manipulate both the classes
x.listA.append(10)
y.listA.append(20)
x.listA.append(30)
y.listA.append(40)

# Print Results
print("Instance X: ",x.listA)
print("Instance Y: ",y.listA)

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

Instance X: [10, 20, 30, 40]
Instance Y: [10, 20, 30, 40]

निजी वर्ग चर के साथ __inti__

हम एक वर्ग के अंदर चर को निजी बनाने के लिए मुझे एक विधि की आवश्यकता है का उपयोग कर सकते हैं। जब पैरेंट क्लास को इंस्टेंट किया जाता है तो ये वेरिएबल कक्षाओं में साझा नहीं किए जाएंगे।

उदाहरण

class MyClass:
   def __init__(self):
      self.listA = []

# Instantiate Both the classes
x = MyClass()
y = MyClass()

# Manipulate both the classes
x.listA.append(10)
y.listA.append(20)
x.listA.append(30)
y.listA.append(40)

# Print Results
print("Instance X: ",x.listA)
print("Instance Y: ",y.listA)

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

Instance X: [10, 30]
Instance Y: [20, 40]

बाहर चर घोषित करके

इस दृष्टिकोण में, हम कक्षा के बाहर के चरों को फिर से घोषित करेंगे। जैसे ही वेरिएबल्स को फिर से इनिशियलाइज़ किया जाता है, जो इंस्टेंटियेटेड क्लासेस में साझा नहीं होते हैं।

उदाहरण

class MyClass:
   listA = []

# Instantiate Both the classes
x = MyClass()
y = MyClass()

x.listA = []
y.listA = []
# Manipulate both the classes
x.listA.append(10)
y.listA.append(20)
x.listA.append(30)
y.listA.append(40)

# Print Results
print("Instance X: ",x.listA)
print("Instance Y: ",y.listA)
Output

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

Instance X: [10, 30]
Instance Y: [20, 40]

  1. पायथन में वायलिन भूखंडों के काम का प्रदर्शन करें?

    यदि हम श्रेणियों के भीतर मौजूद डेटा की तुलना करना चाहते हैं, तो बॉक्स प्लॉट चलन में आते हैं। यह एक ऐसा तरीका है जिससे डेटासेट में डेटा वितरण को चतुर्थक की मदद से समझा जा सकता है। इसमें ऊर्ध्वाधर रेखाएँ होती हैं जो बक्सों से विस्तारित होती हैं। इन एक्सटेंशन को व्हिस्कर्स के रूप में जाना जाता है। ये म

  1. पायथन में वर्ग चर को परिभाषित करने का सही तरीका क्या है?

    वर्ग चर वे चर हैं जो __init__method के बाहर घोषित किए जाते हैं। ये स्थिर तत्व हैं, अर्थात्, वे वर्ग के उदाहरणों के बजाय वर्ग के हैं। ये वर्ग चर उस वर्ग के सभी उदाहरणों द्वारा साझा किए जाते हैं। वर्ग चर के लिए उदाहरण कोड उदाहरण class MyClass:   __item1 = 123   __item2 = "abc" &nb

  1. पायथन में वस्तु उन्मुख अवधारणाओं को संक्षेप में समझाएं?

    पायथन में OOP अवधारणाएं पायथन एक वस्तु-उन्मुख प्रोग्रामिंग भाषा है। हम Python में आसानी से क्लास और ऑब्जेक्ट बना सकते हैं और उनका उपयोग कर सकते हैं। पायथन प्रोग्रामिंग भाषा की प्रमुख वस्तु-उन्मुख अवधारणाएं नीचे दी गई हैं - वस्तु कक्षा विधि विरासत बहुरूपता डेटा एब्स्ट्रैक्शन एनकै