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.