Zacznij terazZacznij za darmo

Domknięcia chronią twoje wartości

Nadal pomagasz swojej siostrzenicy zrozumieć domknięcia. Napisałeś funkcję get_new_func(), która zwraca zagnieżdżoną funkcję. Zagnieżdżona funkcja call_func() wywołuje tę funkcję, która została przekazana do get_new_func(). Napisałeś też my_special_function(), która po prostu wyświetla komunikat informujący o tym, że jest wykonywana.

Chcesz pokazać siostrzenicy, że bez względu na to, co zrobisz z my_special_function() po przekazaniu jej do get_new_func(), nowa funkcja nadal naśladuje zachowanie oryginalnej my_special_function() — bo ta oryginalna wersja jest częścią domknięcia nowej funkcji.

To ćwiczenie jest częścią kursu

Pisanie funkcji w Pythonie

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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()
Edytuj i uruchom kod