I was wondering if you could add an attribute 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.
AttrDict , Attribute Dictionary, is the exact same as a python native dict , except that in most cases, you can use the dictionary key as if it was an object attribute instead. This allows users to create container objects that looks as if they are class objects (as long as the user objects the proper limitations).
Just derive from dict
:
class MyDict(dict):
pass
Instances of MyDict
behave like a dict
, but can have custom attributes:
>>> d = MyDict()
>>> d.my_attr = "whatever"
>>> d.my_attr
'whatever'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With