Замикання зберігають ваші значення в безпеці
Ви й далі допомагаєте своїй племінниці розібратися із замиканнями. Ви написали функцію get_new_func(), яка повертає вкладену функцію. Вкладена функція call_func() викликає будь-яку функцію, яку було передано до get_new_func(). Ви також написали my_special_function(), яка просто виводить повідомлення, що виконується my_special_function().
Ви хочете показати племінниці, що байдуже, що ви зробите з my_special_function() після того, як передасте її в get_new_func(): нова функція все одно відтворює поведінку початкової my_special_function(), адже вона міститься в замиканні нової функції.
Ця вправа є частиною курсу
Написання функцій у Python
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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()