Using inner dict as class interface

Matt Jones matt.walker.jones at gmail.com
Wed Jan 16 15:59:16 CET 2013


Or do what Steven said if its exactly a dict and doesn't require special
management of the underlying dict.

*Matt Jones*


On Wed, Jan 16, 2013 at 8:58 AM, Matt Jones <matt.walker.jones at gmail.com>wrote:

> 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/8cc80954/attachment.html>


More information about the Python-list mailing list