डबल अंडरस्कोर प्रीफ़िक्स
पायथन में, हम डबल अंडरस्कोर का उपयोग करते हैं, अर्थात, विशेषता के नाम से पहले __ और वे विशेषताएँ बाहर सीधे पहुँच योग्य/दृश्यमान नहीं होंगी। डबल अंडरस्कोर विशेषता के नाम का प्रबंधन करता है। हालाँकि, उस चर को अभी भी कुछ ट्रिकी सिंटैक्स का उपयोग करके एक्सेस किया जा सकता है लेकिन ऐसा करना आम तौर पर एक अच्छा विचार नहीं है। डबल अंडरस्कोर का उपयोग पूरी तरह से निजी चर के लिए किया जाता है।
पायथन दस्तावेज़ों के अनुसार -
यदि आपकी कक्षा को उपवर्गित करने का इरादा है, और आपके पास ऐसी विशेषताएँ हैं जिनका आप उपवर्गों का उपयोग नहीं करना चाहते हैं, तो उन्हें दोहरे अग्रणी अंडरस्कोर और कोई अनुगामी अंडरस्कोर के साथ नाम देने पर विचार करें। यह पायथन के नाम मैंगलिंग एल्गोरिदम को आमंत्रित करता है, जहां वर्ग का नाम विशेषता नाम में उलझा हुआ है। यह विशेषता नाम टकराव से बचने में मदद करता है, उपवर्गों में अनजाने में समान नाम वाले गुण होने चाहिए।
उदाहरण
नीचे दिया गया कोड डबल अंडरस्कोर का उपयोग दिखाता है।
class MyClass: __hiddenVar = 0 def add(self, increment): self.__hiddenVar += increment print (self.__hiddenVar) myObject = MyClass() myObject.add(3) myObject.add (8) print (myObject.__hiddenVar)
आउटपुट
3 Traceback (most recent call last): 11 File "C:/Users/TutorialsPoint1/.PyCharmCE2017.2/config/scratches/scratch_1.py", line 12, in <module> print (myObject.__hiddenVar) AttributeError: MyClass instance has no attribute '__hiddenVar'
उपरोक्त कार्यक्रम में, हमने ऑब्जेक्ट का उपयोग करके कक्षा के बाहर छिपे हुए चर को एक्सेस करने का प्रयास किया और इसने एक अपवाद फेंक दिया।