Binding de las variables libres de funciones

German Kruszewski germank en gmail.com
Vie Nov 7 17:17:28 CET 2008


Muchas gracias a todos por la ayuda. Finalmente pude hacerlo andar
utilizando el método de recubrir la función con otra función tal como me
explicaba Arnau o se lee en una de las respuestas en la página que mandó
Eli.

Saludos,
Germán

2008/11/7 Eli Bendersky <eliben en gmail.com>

> 2008/11/6 German Kruszewski <germank en gmail.com>:
> > Hola, este es mi primer mensaje a la lista. Recién comienzo con python y
> > tengo una duda.
> > Mi problema es el siguiente: quiero construir automáticamente n funciones
> > que hagan acciones muy parecidas entre sí. Digamos por ejemplo que cada
> f_i
> > tiene que imprimir el texto "Esta es la función i".
> > La manera de hacerlo que se me ocurrió fue la siguiente:
> > class C:
> >    def __init__(self):
> >        for i in range(1,3):
> >            def f():
> >                print "Esta es la funcion %i" % i
> >            setattr(self, 'f' + str(i), f)
> >
> > c = C()
> > c.f1()
> > c.f2()
> >
> > Sin embargo, el output que se produce es:
> > *
> > Esta es la funcion 2
> > Esta es la funcion 2
> > *
>
> Aqui tienes un bueno discusión sobre este:
> http://stackoverflow.com/questions/233673/lexical-closures-in-python
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es