मैं एक सजावट लिख रहा था जिसे निजी चरों तक पहुंचने की आवश्यकता है और यह विसंगति मिली है। क्या कोई इसे समझा सकता है?पायथन "निजी" नाम मैंगलिंग और इंस्टेंस बनाम क्लास गुण
(अजगर 2.5)
नामकरण काम करता है mangling के रूप में विशेषताओं वर्ग में परिभाषित के लिए उम्मीद:
उदाहरण विशेषताओं के काम नहीं है (और इस तरह से हम इसे सही करने के लिए की अपेक्षा की जाती है?)
>>> class Tester(object):
... def __init__(self):
... self.__foo = "hi"
>>> t = Tester()
>>> t._Tester__foo
AttributeError: 'Tester' object has no attribute '_Tester__foo'
पीएस क्या इनके लिए सही शब्द "वर्ग विशेषता" है? वे स्थिर नहीं होते हैं, लेकिन अगर आप उन में से एक एक सूची, या कुछ अन्य परिवर्तनशील प्रकार बनाने के लिए, यह साझा किया जाता है ...
अद्यतन
वास्तव में, दूसरा उदाहरण, ठीक काम करता है भी। यह एक हार्डवेयर मुद्दा था (मदद पुनरारंभ)।
कक्षा विशेषता सही शब्द है। और वे * हमेशा * साझा किए जाते हैं। व्यवहार्यता कोई फर्क नहीं पड़ता। जब आप किसी दिए गए ऑब्जेक्ट को म्यूट कर सकते हैं तो यह पूछने के अलावा, यह बहुत महत्वपूर्ण नहीं है। – delnan
क्या मैं इस सवाल को निंदा कर सकता हूं? या क्या कोई इसे रखने में मूल्य देखता है? मैं अपने मूल मुद्दे को पुन: उत्पन्न नहीं कर सकता। ऐसा लगता है कि यह उम्मीद के रूप में काम करता है। – Rafe
इसके बजाय इसे छोड़ दें, क्योंकि @MartijnPieters कई पायथन परीक्षणों में इस मुद्दे का परीक्षण करने के लिए सभी तरह से चला गया। – jsbueno