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

पायथन में इंस्टेंस के बीच क्लास डेटा साझा होने से रोकें


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

इंस्टेंशिएशन उदाहरण

नीचे दिए गए उदाहरण में हम दिखाते हैं कि कैसे एक दी गई क्लास से चर इंस्टेंशिएट होते हैं और कैसे चर सभी इंस्टेंशिएटेड क्लास में साझा होते हैं।

class MyClass:     listA = [] # दोनों क्लास को इंस्टेंशिएट करें x = MyClass() y = MyClass() # दोनों क्लास को मैनिपुलेट करें x.listA.append(10) y.listA.append(20) x.listA.append(30) y.listA.append(40) # परिणाम प्रिंट करें print("इंस्टेंस X: ", x.listA) print("इंस्टेंस Y: ", y.listA)

आउटपुट

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

इंस्टेंस X: [10, 20, 30, 40] इंस्टेंस Y: [10, 20, 30, 40]

__init__ के साथ निजी क्लास चर

हम __init__ मेथड का उपयोग करके क्लास के अंदर चर को निजी बना सकते हैं। जब पैरेंट क्लास इंस्टेंशिएट होती है तो ये चर इंस्टेंशिएटेड क्लास में साझा नहीं होंगे।

उदाहरण

class MyClass:     def __init__(self):         self.listA = [] # दोनों क्लास को इंस्टेंशिएट करें x = MyClass() y = MyClass() # दोनों क्लास को मैनिपुलेट करें x.listA.append(10) y.listA.append(20) x.listA.append(30) y.listA.append(40) # परिणाम प्रिंट करें print("इंस्टेंस X: ", x.listA) print("इंस्टेंस Y: ", y.listA)

आउटपुट

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

इंस्टेंस X: [10, 30] इंस्टेंस Y: [20, 40]

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

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

उदाहरण

class MyClass:     listA = [] # दोनों क्लास को इंस्टेंशिएट करें x = MyClass() y = MyClass() x.listA = [] y.listA = [] # दोनों क्लास को मैनिपुलेट करें x.listA.append(10) y.listA.append(20) x.listA.append(30) y.listA.append(40) # परिणाम प्रिंट करें print("इंस्टेंस X: ", x.listA) print("इंस्टेंस Y: ", y.listA)

आउटपुट

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

इंस्टेंस X: [10, 30] इंस्टेंस Y: [20, 40]
  1. पायथन में वायलिन प्लॉट के कार्य को प्रदर्शित करें पायथन में वायलिन प्लॉट के कार्य को प्रदर्शित करें

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

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

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

  1. - Python में ऑब्जेक्ट-ओरिएंटेड कॉन्सेप्ट्स को संक्षेप में समझाएं

    Python में OOP कॉन्सेप्ट्स Python एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। हम Python में आसानी से क्लासेस और ऑब्जेक्ट्स बना और उपयोग कर सकते हैं। Python प्रोग्रामिंग भाषा के प्रमुख ऑब्जेक्ट-ओरिएंटेड कॉन्सेप्ट्स नीचे दिए गए हैं: ऑब्जेक्ट क्लास मेथड इनहेरिटेंस पॉलीमॉर्फिज्म डेटा एब्स्ट्रैक्शन एनकैप