Binding de las variables libres de funciones

Eli Bendersky eliben en gmail.com
Vie Nov 7 15:37:48 CET 2008


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





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