Los cierres mantienen a salvo tus valores
Sigues ayudando a tu sobrina a comprender los cierres. Has escrito la función get_new_func()
que devuelve una función anidada. La función anidada call_func()
llama a la función que se haya pasado a get_new_func()
. También has escrito my_special_function()
que simplemente imprime un mensaje que indica que estás ejecutando my_special_function()
.
Quieres mostrarle a tu sobrina que, independientemente de lo que le hagas a my_special_function()
después de pasársela a get_new_func()
, la nueva función sigue imitando el comportamiento de la original my_special_function()
porque está en el cierre de la nueva función.
Este ejercicio forma parte del curso
Escribir funciones en Python
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
def my_special_function():
print('You are running my_special_function()')
def get_new_func(func):
def call_func():
func()
return call_func
new_func = get_new_func(my_special_function)
# Redefine my_special_function() to just print "hello"
def my_special_function():
____
new_func()