НачатьНачать бесплатно

Замыкания защищают ваши значения

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