On 01/16/2013 09:42 AM, Florian Lindner 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:

Is it a specific requirement that the class NOT be derived from dict? Are you trying to look like a dict, but with a few extra features? Or must you have a dict somewhere else (singleton ??!) that you're trying to tie this to as a proxy.

Assuming you really have to tie this to some other dict, the first thing you need to do is save d, perhaps as a line like:

    self.d = dict_like_ob....


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?)

See http://docs.python.org/reference/datamodel.html#special-method-names

Because you're duck-typing, you don't need them all, just the ones your user will need.

to access the inner dict or is
there something more slick?


The more slick is to derive from dict.

--
DaveA

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to