CommencerCommencez gratuitement

Les fermetures assurent la sécurité de vos valeurs

Vous continuez à aider votre nièce à comprendre les fermetures. Vous avez créé 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 rédigé my_special_function(), qui affiche simplement un message indiquant que vous exécutez my_special_function().

Vous souhaitez démontrer à votre nièce que, quelles que soient les modifications apportées à my_special_function() après l'avoir transmis à get_new_func(), la nouvelle fonction continue d'imiter le comportement de la fonction d'origine my_special_function(), car elle se trouve dans la fermeture de la nouvelle fonction.

Cet exercice fait partie du cours

<cours>Écrire des fonctions en Python</cours>
Voir le cours

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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