Explicit is better than implicit. Define the dunder methods so you know exactly what your class is doing when being indexed. You only need __getitem__ and __setitem__ really, but if you want to treat it just like a dict you'll need __delitem__, __len__, __iter__, __contains__ as well.
*Matt Jones* On Wed, Jan 16, 2013 at 8:42 AM, Florian Lindner <mailingli...@xgm.de>wrote: > Hello, > > I have a: > > class C: > def __init__(self): > d = dict_like_object_created_somewhere_else() > > def some_other_methods(self): > pass > > > class C should behave like a it was the dict d. So I could do: > > c = C() > print c["key"] > print len(c) > > but also > > c.some_other_method() > > How can I achieve that? Do I need to define all methods like > __getitem__, __len__, ... (what else?) to access the inner dict or is > there something more slick? > > Thanks, > > Florian > -- > http://mail.python.org/mailman/listinfo/python-list >
-- http://mail.python.org/mailman/listinfo/python-list