Wrap a dictionary in a class?

Michael Spencer mahs at telcopartners.com
Wed Mar 22 15:10:42 EST 2006


Joseph Turian wrote:
> In another thread, it was recommended that I wrap a dictionary in a
> class.
> How do I do so?
> 
>    Joseph
> 
> that thread:
> http://groups.google.com/group/comp.lang.python/browse_frm/thread/9a0fbdca450469a1/b18455aa8dbceb8a?q=turian&rnum=1#b18455aa8dbceb8a
> 
Perhaps like this?

 >>> adict = dict(a=1,b=2,c=3)
 >>> class Bunch(object):
...     def __init__(self, other):
...         self.__dict__ = other
...
 >>> b = Bunch(adict)
 >>> b.a
1
 >>> b.b
2
 >>> b.c
3
 >>> b.c= 42
 >>> adict
{'a': 1, 'c': 42, 'b': 2}
 >>>

Be careful: attribute access to the dictionary works only if the keys are valid 
identifiers, and not special names (which Python looks up in the class).


HTH
Michael




More information about the Python-list mailing list