CommencerCommencer gratuitement

Les fermetures protègent vos valeurs

Vous continuez à aider votre nièce à comprendre les fermetures. Vous avez écrit la fonction get_new_func() qui renvoie une fonction imbriquée. La fonction imbriquée call_func() appelle la fonction qui a été transmise à get_new_func(). Vous avez également écrit my_special_function() qui imprime simplement un message indiquant que vous exécutez my_special_function().

Vous voulez montrer à votre nièce que, quoi que vous fassiez à my_special_function() après l'avoir passé à get_new_func(), la nouvelle fonction imite toujours le comportement de l'original my_special_function() parce qu'elle se trouve dans la fermeture de la nouvelle fonction.

Cet exercice fait partie du cours

Écrire des fonctions en Python

Afficher le cours

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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()
Modifier et exécuter le code