si no te molesta tocar un poco de programación funcional, lambdas y demas:
a = ['hola', 'adios'] map(lambda x:x.swapcase(), a) esto da un resultado de: ['HOLA', 'ADIOS'] espero que te sirva para orientar lo que quieres hacer ;) 2012/10/5 Carlos Zuniga <carlos....@gmail.com>: > 2012/10/5 Jose Caballero <jcaballero....@gmail.com>: >> 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. > > Tal vez algo como: > > class Cont: > ... > def __getattr__(self, atr): > def foo(): > outs = [] > for o in self.list_obj: > out = getattr(o, atr)() > outs.append(out) > return outs > return foo > > >> >> Saludos cordiales, >> Jose >> P.S. perdon por la ausencia de tildes. > > UTF existe, ya no es excusa ;-) > > Saludos > -- > A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos > de leer manuales. > _______________________________________________ > 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/