LoslegenKostenlos loslegen

Closures bewahren deine Werte

du hilfst deiner Nichte weiterhin, Closures zu verstehen. du hast die Funktion get_new_func() geschrieben, die eine geschachtelte Funktion zurückgibt. Die geschachtelte 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

Funktionen in Python schreiben

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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