programming container object

Paul McGuire ptmcg at austin.rr.com
Mon Dec 17 03:31:13 EST 2007


On Dec 17, 1:18 am, "bambam" <da... at asdf.asdf> wrote:
> I wish to create a generic container object, devlist, such that
>
>     devlist.method(arguments)
>
> runs as
>
>     for each dev in devlist.pool:
>         dev.method(arguments)
>
> and
>     s = devlist.method(arguments)
>
> runs as
>
>     for each dev in devlist.pool:
>         s.append(dev.method(arguments))
>
> ...but it is outside my ability to do so.
>
> Can anyone provide an example of how to do that?
>
> Thanks,
> Steve

Ok, I'll take a stab at it.

-- Paul

class DevList(object):
    def __init__(self, objs):
        self.devpool = objs

    def __getattribute__(self,attrname):
        if attrname == "devpool":
            return object.__getattribute__(self,attrname)
        def ret(*args):
            return [ getattr(p,attrname)(*args) for p in
self.devpool ]
        return ret


dl = DevList([1,2,3])
print dl.__str__()

prints:

['1', '2', '3']



More information about the Python-list mailing list