सिंगल अंडरस्कोर
क्लास में, लीडिंग अंडरस्कोर वाले नाम मूल रूप से अन्य प्रोग्रामर्स को इंगित करने के लिए होते हैं कि एट्रिब्यूट या मेथड प्राइवेट होने का इरादा रखता है।
सेमी-प्राइवेट वेरिएबल्स के लिए सिंगल अंडरस्कोर और फुली प्राइवेट वेरिएबल्स के लिए डबल अंडरस्कोर उपयोग करने की सिफारिश की जाती है।
PEP-8 को उद्धृत करने के लिए:
_single_leading_underscore: कमजोर "इंटरनल यूज़" इंडिकेटर। उदाहरण: from M import * उन ऑब्जेक्ट्स को इम्पोर्ट नहीं करता जिनका नाम अंडरस्कोर से शुरू होता है।
उदाहरण
निम्न कोड डबल और सिंगल अंडरस्कोर प्रीफिक्स के बीच अंतर दिखाता है:
class MyClass():
def __init__(self):
self.__fullrprivate = "World"
self._semiprivate = "Hello"
mc = MyClass()
print(mc._semiprivate)
print(mc.__fullprivate)
आउटपुट
Traceback (most recent call last): Hello File "C:/Users/TutorialsPoint1/~_1.py", line 8, in <module> print(mc.__fullprivate) AttributeError: MyClass instance has no attribute '__fullprivate'