CommencezCommencez gratuitement

Vérifier la fermeture (closure)

Vous enseignez à votre nièce à programmer en Python, et elle travaille sur le renvoi de fonctions imbriquées. Elle pense avoir écrit le code correctement, mais elle craint que la fonction renvoyée n'ait pas les informations nécessaires au moment de l'appel. Montrez-lui que toutes les variables non locales dont elle a besoin se trouvent dans la fermeture (closure) de la nouvelle fonction.

Cette activité fait partie du cours

Écrire des fonctions en Python

Voir le cours

Exercice interactif pratique

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

def return_a_func(arg1, arg2):
  def new_func():
    print('arg1 was {}'.format(arg1))
    print('arg2 was {}'.format(arg2))
  return new_func
    
my_func = return_a_func(2, 17)

# Show that my_func()'s closure is not None
print(my_func.____ is not None)
Modifier et exécuter le code