Kom igångKom igång gratis

Closures skyddar dina värden

Du hjälper fortfarande din brorsdotter att förstå closures. Du har skrivit funktionen get_new_func() som returnerar en nästlad funktion. Den nästlade funktionen call_func() anropar den funktion som skickades till get_new_func(). Du har också skrivit my_special_function(), som helt enkelt skriver ut ett meddelande om att my_special_function() körs.

Du vill visa din brorsdotter att oavsett vad du gör med my_special_function() efter att du skickat den till get_new_func(), så efterliknar den nya funktionen alltid beteendet hos den ursprungliga my_special_function() – eftersom den finns i den nya funktionens closure.

Den här övningen är en del av kursen

Att skriva funktioner i Python

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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()
Redigera och kör kod