Using inner dict as class interface
Matt Jones
matt.walker.jones at gmail.com
Wed Jan 16 09:58:21 EST 2013
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 <mailinglists at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130116/8ec7113d/attachment.html>
More information about the Python-list
mailing list