beanbag.attrdict – Access dict members by attribute¶
AttrDict¶
This module provides the AttrDict class, which allows you to access dict members via attribute access, allowing similar syntax to javascript objects. For example:
d = {"foo": 1, "bar": {"sub": {"subsub": 2}}}
ad = AttrDict(d)
assert ad["foo"] == ad["foo"]
assert ad.foo == 1
assert ad.bar.sub.subsub == 2
Note that AttrDict simply provides a view on the native dict. That dict can be obtained using the plus operator like so:
ad = AttrDict(d)
assert +ad is d
This allows use of native dict methods such as d.update() or d.items(). Note that attribute access binds more tightly than plus, so brackets will usually need to be used, eg: (+ad.bar).items().
An AttrDict can also be directly used as an iterator (for key in attrdict: ...) and as a container (if key in attrdict: ...).
- class beanbag.attrdict.AttrDict(base=None)¶
- __delattr__(attr)¶
del self.attr
- __delitem__(item)¶
del self[item]
- __eq__(other)¶
self == other
- __getattr__(attr)¶
self.attr
- __getitem__(item)¶
self[attr]
- __init__(base=None)¶
Provide an AttrDict view of a dictionary.
Parameters: base – dictionary/list to be viewed
- __ne__(other)¶
self != other
- __pos__()¶
View underlying dict object
- __setattr__(attr, val)¶
self.attr = val
- __setitem__(item, val)¶
self[item] = val