डेटा छिपाना
पायथन में, हम विशेषताओं के नाम से पहले डबल अंडरस्कोर का उपयोग उन्हें दुर्गम/निजी बनाने या उन्हें छिपाने के लिए करते हैं।
निम्न कोड दिखाता है कि वेरिएबल __hiddenVar कैसे छिपा हुआ है।
उदाहरण
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/~_1.py", line 12, in <module> print (myObject.__hiddenVar) AttributeError: MyClass instance has no attribute '__hiddenVar'
उपरोक्त कार्यक्रम में, हमने ऑब्जेक्ट का उपयोग करके कक्षा के बाहर छिपे हुए चर को एक्सेस करने का प्रयास किया और इसने एक अपवाद फेंक दिया।
हम एक विशेष सिंटैक्स का उपयोग करके हिडन एट्रिब्यूट के मान को इस प्रकार एक्सेस कर सकते हैं -
उदाहरण
class MyClass: __hiddenVar = 12 def add(self, increment): self.__hiddenVar += increment print (self.__hiddenVar) myObject = MyClass() myObject.add(3) myObject.add (8) print (myObject._MyClass__hiddenVar)
आउटपुट
15 23 23
निजी विधियों को उनकी कक्षा के बाहर से एक्सेस किया जा सकता है, लेकिन सामान्य मामलों में उतनी आसानी से नहीं। पायथन में कुछ भी वास्तव में निजी नहीं है; आंतरिक रूप से, निजी विधियों और विशेषताओं के नामों को उनके दिए गए नामों से दुर्गम बनाने के लिए फ्लाई पर उलझा दिया जाता है और अनमंगल किया जाता है।