[Python-es] Duda con los parametros de funciones lambda.

Txema Vicente txema en nabla.net
Vie Ago 27 03:34:35 CEST 2010


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 en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>    


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