问题
I was wondering if you could add an attibute to a python dictionary.
class myclass():
def __init__():
self.mydict = {} #initialize a regular dict
self.mydict.newattribute = "A description of what this dictionary will hold"
>>>AttributeError: 'dict' object has no attribute 'newattribute'
setattr(self.mydict,"attribute","A description of what this dictionary will hold"
>>>AttributeError: 'dict' object has no attribute 'newattribute'
Is there anyway to quickly add my description attribute without having to copy the dict class and overloading the constructor. I thought it would be simple, but I guess I was wrong.
Thanks, J
回答1:
Just derive from dict:
class MyDict(dict):
pass
Instances of MyDict can have custom attributes:
>>> d = MyDict()
>>> d.my_attr = "whatever"
>>> d.my_attr
'whatever'
来源:https://stackoverflow.com/questions/11532060/adding-an-attribute-to-a-python-dictionary-from-the-standard-library