Closures houden je waarden veilig
Je helpt je nichtje nog steeds closures te begrijpen. Je hebt de functie get_new_func() geschreven die een geneste functie retourneert. De geneste functie call_func() roept welke functie dan ook aan die aan get_new_func() is doorgegeven. Je hebt ook my_special_function() geschreven, die simpelweg een bericht print dat aangeeft dat je my_special_function() uitvoert.
Je wilt je nichtje laten zien dat, wat je ook met my_special_function() doet nadat je die aan get_new_func() hebt doorgegeven, de nieuwe functie nog steeds het gedrag van de oorspronkelijke my_special_function() nadoet, omdat die in de closure van de nieuwe functie zit.
Deze oefening maakt deel uit van de cursus
Functies schrijven in Python
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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()