Closure-urile îți păstrează valorile în siguranță
Continui să o ajuți pe nepoata ta să înțeleagă closure-urile. Ai scris funcția get_new_func(), care returnează o funcție imbricată. Funcția imbricată call_func() apelează orice funcție a fost transmisă lui get_new_func(). Ai scris de asemenea my_special_function(), care afișează pur și simplu un mesaj ce indică faptul că se execută my_special_function().
Vrei să îi arăți nepoatei tale că, indiferent ce faci cu my_special_function() după ce o transmiți lui get_new_func(), noua funcție reproduce în continuare comportamentul originalului my_special_function(), deoarece acesta face parte din closure-ul noii funcții.
Acest exercițiu face parte din cursul
Scrierea funcțiilor în Python
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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()