के बीच __dict__ में पाइथन अंतर में मैं गतिशील विशेषताओं के साथ गड़बड़ कर रहा था और मैंने देखा कि अगर मैं ऑब्जेक्ट() कक्षा से सीधे ऑब्जेक्ट बनाता हूं तो मैं __dict__ विशेषता का उपयोग नहीं कर सकता लेकिन अगर मैं एक नई कक्षा बनाएं जो ऑब्जेक्ट का प्रत्यक्ष वंशज है I __dict__ विशेषता का उपयोग कर सकता हूं। अंतर क्यों?ऑब्जेक्ट() और क्लास myClass (ऑब्जेक्ट)
उदाहरण:
# This gives an AttributeError o = object() o.__dict__
# This works: prints {}
class myClass(object):
pass
o = myClass()
o.__dict__
'__dict__' के साथ फिडलिंग सीधे हमेशा अनियंत्रित और बुरा विचार है। गतिशील विशेषताओं का नाम आम तौर पर शब्दकोश कुंजी के रूप में बेहतर होता है, लेकिन कुछ मामलों में उचित होता है - लेकिन आप उन मामलों में केवल 'setattr' का उपयोग कर सकते हैं। – delnan