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
Pruebe este ejercicio completando este 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()