CommencerCommencer 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

É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