Devolver funciones

Daniel Ripolles (Eru) ripolles en aditel.org
Mar Oct 21 20:08:59 CEST 2003


El Martes, 21 de Octubre de 2003 19:02, Batista, Facundo escribió:
> #- Quiero que una función me devuelva otra función, para hacer algo así:
> #- def suma(x, y):
> #-     return x+y
> #-
> #- def función(x, y):
> #-     #algo, y devuelve una función
> #-  funcion(elevar, 5)(5) # y me devuelva 5 al cubo.
> #-
no entiendo exactemente que quieres hacer, pero igual te sirven unos 
ejemplitos:

>>> def f(x): return x*2
...
>>> def funciondoble(): return f
...
>>> funciondoble()(3)
6
>>> def otrafuncion():
...     return lambda x:x+1
...
>>> otrafuncion()(4)
5
>>>

No sé si es lo que buscas, pero si van por ahí los tiros recuerda que una 
función también es un objeto, por lo que puedes utilizar su "nombre" como un 
objeto cualquiera.
-- 
Daniel Ripolles ( Eru )
perl -e '$SIG{__WARN__}=sub{$_||=pop;
s,o.*,$^X,,s$/.*/$$,print};++$^W;m||'




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