Funciones anidadas II
Buen trabajo, acabas de anidar una función dentro de otra función. Otra razón bastante interesante para anidar funciones es la idea de cierre. Esto significa que la función anidada o interna recuerda el estado del ámbito que la rodea cuando se llama. Así, todo lo que se defina localmente en el ámbito envolvente estará disponible para la función interna incluso cuando la función externa haya finalizado su ejecución.
¡Avancemos entonces! En este ejercicio, completarás la definición de la función interna inner_echo()
y luego llamarás a echo()
un par de veces, cada una con un argumento distinto. ¡Completa el ejercicio y mira cuál será el resultado!
Este ejercicio forma parte del curso
Introducción a las funciones en Python
Instrucciones del ejercicio
- Completa el encabezado de la función interna con el nombre de la función
inner_echo()
y un único parámetroword1
. - Completa la función
echo()
para que devuelvainner_echo
. - Hemos llamado a
echo()
, hemos pasado 2 como argumento y hemos asignado la función resultante atwice
. Tu trabajo consiste en llamar aecho()
y pasar 3 como argumento. Asigna la función resultante athrice
. - Pulsa Enviar para llamar a
twice()
ythrice()
e imprimir los resultados.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Define echo
def echo(n):
"""Return the inner_echo function."""
# Define inner_echo
def ____(____):
"""Concatenate n copies of word1."""
echo_word = word1 * n
return echo_word
# Return inner_echo
# Call echo: twice
twice = echo(2)
# Call echo: thrice
# Call twice() and thrice() then print
print(twice('hello'), thrice('hello'))