Uzávěry chrání tvoje hodnoty
Stále pomáháš své neteři pochopit uzávěry. Napsal/a jsi funkci get_new_func(), která vrací vnořenou funkci. Vnořená funkce call_func() zavolá jakoukoli funkci, která byla předána do get_new_func(). Napsal/a jsi také funkci my_special_function(), která jednoduše vypíše zprávu oznamující, že se právě vykonává my_special_function().
Chceš své neteři ukázat, že bez ohledu na to, co s my_special_function() uděláš poté, co ji předáš do get_new_func(), nová funkce stále napodobuje chování původní my_special_function() — protože ta je součástí uzávěru nové funkce.
Toto cvičení je součástí kurzu
Writing Functions in Python
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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()