Closures bewahren deine Werte
du hilfst deiner Nichte weiterhin, Closures zu verstehen. du hast die Funktion get_new_func() geschrieben, die eine geschachtelte Funktion zurückgibt. Die geschachtelte Funktion call_func() ruft die Funktion auf, die an get_new_func() übergeben wurde. du hast außerdem my_special_function() geschrieben, die einfach eine Meldung ausgibt, dass du my_special_function() ausführst.
Du möchtest deiner Nichte zeigen, dass die neue Funktion das Verhalten der ursprünglichen my_special_function() beibehält, egal was du nach der Übergabe an get_new_func() mit my_special_function() machst, weil sie in der Closure der neuen Funktion enthalten ist.
Diese Übung ist Teil des Kurses
Funktionen in Python schreiben
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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()