[Python-es] encapsular llamadas a metodos arbitrarios desde una clase container
Jose Caballero
jcaballero.hep en gmail.com
Vie Oct 5 22:57:38 CEST 2012
On Oct 5, 2012, at 15:49, Jose Caballero <jcaballero.hep en gmail.com> wrote:
>
>
> 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
>
>
>
> Funciona a la perfeccion. De esa forma se devuelve una funcion, y no el resultado de la misma, y asi puedo hacer luego cont.f()
> Muchas gracias !
>
>
Hmmm.
Ahora tengo que investigar qué hacer si quiero que alguno de los métodos acepte inputs.
Por ej:
container.f(1, 2, 3)
Tengo que averiguar cómo pasar 1 2 3 a través de foo().
Imagino que haciendo algo tipo
def foo(*k, **kw):
...
out = getatr(o, atr)(k, kw)
...
Jose
ahora en una máquina con tildes ;)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20121005/5d5099ff/attachment.html>
Más información sobre la lista de distribución Python-es