Re: Using inner dict as class interface

Discussion in 'Python' started by Dave Angel, Jan 16, 2013.

  1. Dave Angel

    Dave Angel Guest

    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
    Dave Angel, Jan 16, 2013
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. E11
    Replies:
    1
    Views:
    4,742
    Thomas Weidenfeller
    Oct 12, 2005
  2. Carlo v. Dango
    Replies:
    14
    Views:
    1,027
    Alex Martelli
    Oct 19, 2003
  3. Pyenos
    Replies:
    2
    Views:
    386
    Pyenos
    Dec 27, 2006
  4. Florian Lindner

    Using inner dict as class interface

    Florian Lindner, Jan 16, 2013, in forum: Python
    Replies:
    2
    Views:
    133
    Peter Otten
    Jan 16, 2013
  5. Matt Jones
    Replies:
    0
    Views:
    144
    Matt Jones
    Jan 16, 2013
Loading...

Share This Page