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