Para hacer dinámico lo quieres mi opción es que crees el atributo en la clase container con setattr() y luego asignar a este nuevo atributo el objeto que necesitas, bien sea una clase o un atributo de ella. El 05/10/2012 11:13, "Jose Caballero" <jcaballero....@gmail.com> escribió:
> Hola, > > > > pido disculpas por adelantado por lo criptico del "subject". Intentare > explicar mejor lo que quiero hacer. > Quiero crear una clase Container que contiene una lista de objetos de una > clase X arbitraria. > > > > ------------------------------------------------------------------------------ > class Container: > def __init__(self, list_obj): > self.list_obj = list_obj > > class X: > blah > > x1 = X() > x2 = X() > x3 = X() > > container = Container( [ x1, x2, x3] ) > > ------------------------------------------------------------------------------ > > > Me gustaria poder llamar a un metodo cualquiera en Container, y que > internamente haga un loop de llamadas a ese mismo metodo para todos los > objectos de la lista. > Por ejemplo, si hago > > container.f() > > que internamente se haga un loop de llamadas: > > x1.f() > x2.f() > x3.f() > > > Lo mas cerca que estoy de conseguirlo es con lo siguiente: > > > > ------------------------------------------------------------------------------ > class Container: > ... > ... > def __getattr__(self, atr): > outs = [] > for o in self.list_obj: > out = getattr(o, atr)() > outs.append(out) > return outs > > ------------------------------------------------------------------------------ > > > con ese codigo puedo hacer > > container.f > container.g > container.h > > pero no > > container.f() > container.g() > container.h() > > > Sigo investigando, pero si mientras tanto alguien me ofrece una pista, > sera mas que bienvenida. > > > Saludos cordiales, > Jose > P.S. perdon por la ausencia de tildes. > > > > > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/