LoslegenKostenlos starten

Closures bewahren deine Werte auf

Du hilfst deiner Nichte weiterhin, Closures zu verstehen. Du hast die Funktion get_new_func() geschrieben, die eine verschachtelte Funktion zurückgibt. Die verschachtelte Funktion call_func() ruft die Funktion auf, die an get_new_func() übergeben wurde. Du hast außerdem my_special_function() geschrieben, die einfach eine Meldung ausgibt, dass du my_special_function() ausführst.

Du möchtest deiner Nichte zeigen, dass die neue Funktion das Verhalten der ursprünglichen my_special_function() beibehält, egal was du nach der Übergabe an get_new_func() mit my_special_function() machst, weil sie in der Closure der neuen Funktion enthalten ist.

Diese Übung ist Teil des Kurses

<Kurs>Funktionen in Python schreiben</Kurs>
Kurs ansehen

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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()
Code bearbeiten und ausführen