ПочатиПочніть безкоштовно

Замикання зберігають ваші значення в безпеці

Ви й далі допомагаєте своїй племінниці розібратися із замиканнями. Ви написали функцію 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()
Редагувати та запускати код