मैं थोड़ा इस व्यवहार से उलझन में हूँ (अजगर 3.2 का प्रयोग करके):अजगर डबल अंडरस्कोर mangling
class Bar:
pass
bar = Bar()
bar.__cache = None
print(vars(bar)) # {'__cache': None}
class Foo:
def __init__(self):
self.__cache = None
foo = Foo()
print(vars(foo)) # {'_Foo__cache': None}
मैं कैसे डबल अंडरस्कोर विशेषता नाम "घायल" होने का कारण बन पर थोड़ा पढ़ा है, लेकिन मैं उपरोक्त दोनों मामलों में एक ही नाम-उलझन की उम्मीद करता।
What is the meaning of a single- and a double-underscore before an object name?
कोई भी विचार यहाँ क्या हो रहा है?
mangling की बात ठीक ** रोकने के लिए है ** सही ढंग से काम से अपने दूसरे मामले। इरादा बाहरी कोड से विशेषता छिपाना है। – millimoose