Object directing to a property when accessed as an iterable

Posted by ThE_JacO on Stack Overflow See other posts from Stack Overflow or by ThE_JacO
Published on 2012-10-09T03:34:41Z Indexed on 2012/10/09 3:36 UTC
Read the original article Hit count: 111

Filed under:
|
|

I'm trying to figure out if there's an elegant and concise way to have a class accessing one of its own properties when "used" as a dictionary, basically redirecting all the methods that'd be implemented in an ordered dictionary to one of its properties.

Currently I'm inheriting from IterableUserDict and explicitly setting its data to another property, and it seems to be working, but I know that UserDict is considered sort of old, and I'm concerned I might be overlooking something.

What I have:

class ConnectionInterface(IterableUserDict):
    def __init__(self, hostObject):
        self._hostObject= hostObject

        self.ports= odict.OrderedDict()
        self.inputPorts= odict.OrderedDict()
        self.outputPorts= odict.OrderedDict()

        self.data= self.ports

This way I expect the object to behave and respond (and be used) the way I mean it to, except I want to get a freebie ordered dictionary behaviour on its property "ports" when it's iterated, items are gotten by key, something is looked up ala if this in myObject, and so on.

Any advice welcome, the above seems to be working fine, but I have an odd itch that I might be missing something.

Thanks in advance.

© Stack Overflow or respective owner

Related posts about python

Related posts about class