Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/08/2015, 14:17
TriN
 
Fecha de Ingreso: enero-2014
Mensajes: 47
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: [Python] Retornar valores en funciones de orden superior

Hola Tropy, antes que nada hay una mala lógica implementada en lo que quieres hacer te explico:

Tienes una función llamada selección que recibe el parámetro operación y posee dos funciones más llamadas suma y multiplicación que reciben 2 parametros mas, ahora bien donde viene el error? intentas guardar un valor de retorno de la función selección que no retorna ningún valor debido a que no pasas los parámetros correspondientes a las funciones suma y multiplicación, te dejo un ejemplo de las dos posibilidades que podrías implementar a ver si entiende mejor:

Opción 1:
Enviar los parámetros desde dentro de la función Selección y retornar el valor de las misma.
Código Python:
Ver original
  1. def seleccion(operacion):
  2.     def suma(n, m):
  3.         return n + m
  4.      
  5.     def multiplicacion(n, m):
  6.         return n * m
  7.    
  8.     if operacion=='multi':
  9.         return multiplicacion(5,2)
  10.  
  11. fGuardada = seleccion("multi")
  12. print (fGuardada)

Opción 2 (Y más eficiente):

Agregar dos parámetros a la función selección y de esta forma pasar la operación a realizarse y los dos valores a los cuales se le aplicará la operación ejemplo:
Código Python:
Ver original
  1. seleccion("multi",5,2)
te dejo de tarea que desarrolles el código completo.

Hecho en python 3.4