Ver índice de contenidos del libro

18.3. Devolución de resultados

Finalmente, para completar los distintos seguimientos, debemos tener en cuenta que los resultados que devuelve la función llamada, se reciben en la expresión correspondiente de la función llamadora.

def devuelve(valor):
  cuadrado = valor * valor
  return cuadrado
 
def recibe(valor):
  cuad = devuelve(valor+1)
  print cuad

En este caso, si hacemos el seguimiento de la llamada:

>>> recibe(5)
36

Veremos algo como lo siguiente:

Instrucción Contexto de recibe Contexto de devuelve Resultado
recibe(5) valor → 5 No existe -
cuad = devuelve(valor+1) valor → 5 No existe Se suspende la ejecución. Se llama a devuelve(6)
devuelve(6) valor → 5 valor → 6 -
cuadrado = valor * valor valor → 5 valor → 6 cuadrado → 36 -
cuad = devuelve(valor+1) valor → 5 cuadrado → 36 No existe -
print cuad valor → 5 cuadrado → 36 No existe Imprime 36
- No existe No existe -

Según se ve en el paso 5, al momento de devolver un valor, el valor de retorno correspondiente a la función devuelve es el que se asigna a la variable cuad, a la vez que la llamada a la función se elimina de la pila.

Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.