यहां वह पैटर्न है जिसका मैं उपयोग करने के बारे में सोच रहा हूं:क्या इस पायथन पैटर्न के साथ कोई 'गॉथचास' है?
class Dicty(dict):
def __init__(self):
self.__dict__ = self
d = Dicty()
d.foo = 'bar'
print d['foo']
>>> bar
d['foo'] = 'baz'
print d.foo
>>> 'baz'
आम तौर पर, मैं ऑब्जेक्ट विशेषता एक्सेस के अर्थशास्त्र को एक्सेस प्राप्त/सेट एक्सेस पर पसंद करता हूं, लेकिन कुछ परिस्थितियां हैं जहां dict-like access की आवश्यकता होती है (उदाहरण के लिए , d['foo-bar'] = 'baz'
) और मैं इन मामलों के लिए विशेष गेटर सेटर विधियों को नहीं रखना चाहूंगा, इसलिए साझा किए गए गुणों के साथ एक ही समय में dict & ऑब्जेक्ट का दोहरा व्यवहार।
क्या उपरोक्त पैटर्न के साथ कोई गठिया है?
देखें: http://stackoverflow.com/questions/3031219/python-recursively-access-dict-via-attributes-as-well-as-index-access –
'इंस्टेंसेंस (dict, ऑब्जेक्ट)'। आपको 'ऑब्जेक्ट' से उत्तराधिकारी की आवश्यकता नहीं है। और कार्यान्वयन हैकी से अधिक है। इसके अलावा: संभव डुप्लिकेट [पायथन में एक विशेषता की तरह dict कुंजी तक पहुंचने?] (Http://stackoverflow.com/questions/4984647/accessing-dict-keys-like-an-attribute-in-python) – delnan
इस में बनाए गए ऑब्जेक्ट्स बिना किसी समस्या के मसालेदार तरीके से उठाया जा सकता है लेकिन स्वीकार किए गए उत्तर द्वारा सुझाए गए शैली में बनाए गए ऑब्जेक्ट्स नहीं कर सकते हैं। –