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

Python वेरिएबल्स में डबल अंडरस्कोर प्रीफिक्स क्या करता है?

डबल अंडरस्कोर प्रीफिक्स

Python में, हम एट्रिब्यूट के नाम से पहले डबल अंडरस्कोर यानी __ का उपयोग करते हैं और वे एट्रिब्यूट्स सीधे एक्सेसिबल/विजिबल नहीं होंगे। डबल अंडरस्कोर एट्रिब्यूट के नाम को मैंगल करता है। हालांकि, उस वेरिएबल को अभी भी कुछ ट्रिकी सिंटैक्स का उपयोग करके एक्सेस किया जा सकता है लेकिन यह आमतौर पर अच्छा विचार नहीं है। डबल अंडरस्कोर का उपयोग फुली प्राइवेट वेरिएबल्स के लिए किया जाता है।

Python डॉक्यूमेंटेशन के अनुसार:

यदि आपकी क्लास को सबक्लास करने का इरादा है, और आपके पास ऐसे एट्रिब्यूट्स हैं जिन्हें आप सबक्लासेस द्वारा उपयोग नहीं करना चाहते, तो उन्हें डबल लीडिंग अंडरस्कोर और बिना ट्रेलिंग अंडरस्कोर के नाम देने पर विचार करें। यह Python के नेम मैंगलिंग एल्गोरिदम को इनवोक करता है, जहां क्लास का नाम एट्रिब्यूट नाम में मैंगल हो जाता है। यह एट्रिब्यूट नाम टकराव से बचने में मदद करता है यदि सबक्लासेस अनजाने में समान नाम वाले एट्रिब्यूट्स रखते हैं।

उदाहरण

नीचे दिया गया कोड डबल अंडरस्कोर के उपयोग को दर्शाता है।

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'

उपरोक्त प्रोग्राम में, हमने ऑब्जेक्ट का उपयोग करके क्लास के बाहर हिडन वेरिएबल को एक्सेस करने की कोशिश की और इसने एक्सेप्शन फेंका।

  1. - पायथन में os.pipe() फ़ंक्शन क्या करता है?

    os.pipe() मेथड एक पाइप बनाता है और फाइल डिस्क्रिप्टर्स की एक जोड़ी (r, w) लौटाता है जो क्रमशः पढ़ने और लिखने के लिए उपयोग योग्य होते हैं। उदाहरण import os, sys print(The child will write text to a pipe and ) print(the parent will read the text written by child...) # पढ़ने और लिखने के लिए फाइल डिस्क

  1. - पायथन में print >> क्या करता है?

    एक सिंटैक्स है जो मानक print स्टेटमेंट को विस्तारित करता है ताकि इसे डिफ़ॉल्ट sys.stdout के बजाय किसी भी फ़ाइल-जैसे ऑब्जेक्ट पर प्रिंट करने के लिए उपयोग किया जा सके। इसलिए इसका उपयोग सीधे फ़ाइलों पर प्रिंट करने के लिए किया जा सकता है। उदाहरण उदाहरण के लिए, आप my_file नामक फ़ाइल खोलते हैं, फिर आप इ

  1. - Python में Strings पर % Operator क्या करता है?

    % String Formatting Operator % एक String Formatting Operator या Interpolation Operator है। दिए गए format % values (जहां Format एक String है), Format में % Conversion Specifications को Values के Zero या अधिक Elements से Replace किया जाता है। Effect C Language में sprintf() का उपयोग करने के समान है।