Muy aclaratorias las respuestas, muchas gracias.
Y menudo juguete functools, no sabía que existía, que bien me lo voy a
pasar.
Suerte.
Una solución pasa por usar otra lambda auxiliar:
for b in (7,8,9):
funciones.append((lambda b: lambda x: multiplica(b, x))(b))
Pero como esto es feo, la gente suele hacelo de otra forma, pasando la
variable como argumento:
for b in (7,8,9):
funciones.append(lambda x, b=b: multiplica(b, x))
Pero por otro lado, lo que estás haciendo no es ni más ni menos que una
función parcial de toda la vida (omnipresente en los lenguajes
funcionales). Así que la mejor solución diría que es:
import functools
for b in (7,8,9):
funciones.append(functools.partial(multiplica, b))
_______________________________________________
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/