Utilizo python 2.7.6:
Código:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
He probado tu opción pero me da otro error:
Código Python:
Ver originaldef seleccion(operacion):
def suma(n, m):
return n + m
def multiplicacion(n, m):
return n * m
if operacion=='multi':
return multiplicacion(5,2)
fGuardada = seleccion("multi")
print fGuardada
Pero me da este error:
Código:
File "de.py", line 2
def seleccion(operacion):
^
IndentationError: unexpected indent
Luego intenté simplificarlo para haber si daba con el error:
Código Python:
Ver originaldef seleccion(operacion):
def suma(n, m):
return n + m
if operacion == 'suma':
return suma
fGuardada = seleccion('suma')
print fGuardada(3, 4)
Pero me da este error:
Código:
Traceback (most recent call last):
File "de.py", line 11, in <module>
print fGuardada(3, 4)
TypeError: 'NoneType' object is not callable
También probé con darle un valor al return suma y me devuelve un resultado de: None
Gracias por sus respuestas.
Y disculpen por las molestias ocacionadas.
Saludos.
---------------------------------------------------------------------------------------------------------------------------------------------------
EDIT: Gracias por la ayuda, ya parece funcionar correctamente.
Código Python:
Ver original#Funciones de orden superior
def seleccion(operacion):
def suma(n, m):
return n + m
def multiplicacion(n, m):
return n * m
if operacion == 'suma':
return suma
elif operacion == 'multi':
return multiplicacion
fGuardada = seleccion('suma')
print fGuardada(10, 40)
Saludos.