Lista de funciones, algún modo sin eval ni lambda?
Alexis Roda
alexis.roda.villalonga en gmail.com
Mar Sep 19 20:49:28 CEST 2006
En/na Tny ha escrit:
>
> La función
> def suma(a+b):
> return a+b
> es una chorrada que se puede meter directamente en el lamda, pero el
> objetivo es emplear una función que ya existe, sin reescribirla en
> formato lambda ni nada por el estilo.
>
> empleando la función quedaría
>
> def factoria(parametro) :
> return lambda x : suma(x, parametro)
>
> sumas = [ factoria(i) for i in xrange(10) ]
>
> Funciona, y nos quitamos de encima el 'eval' aunque siga el 'lambda'.
Como curiosidad, python te permite hacer cosas mas complejas:
def factoria(parametro) :
def funcion(x) :
return suma(x, parametro)
return funcion
En python 2.5 (recién salido del horno) tienes el módulo functools. Mira
functools.partial()
Saludos
Más información sobre la lista de distribución Python-es