CommencezCommencez gratuitement

Définir un décorateur

Votre collègue travaille sur un décorateur qui affiche un message « avant » avant l'appel de la fonction décorée et un message « après » une fois l'appel terminé. Il ne se souvient plus très bien comment l'enrobage de la fonction décorée doit fonctionner. Donnez-lui un coup de main en complétant le décorateur print_before_and_after().

Cette activité fait partie du cours

Écrire des fonctions en Python

Voir le cours

Instructions de l’exercice

  • Appelez la fonction décorée et transmettez-lui les arguments positionnels *args.
  • Retournez la nouvelle fonction décorée.

Exercice interactif pratique

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

def print_before_and_after(func):
  def wrapper(*args):
    print('Before {}'.format(func.__name__))
    # Call the function being decorated with *args
    ____(*args)
    print('After {}'.format(func.__name__))
  # Return the nested function
  return ____

@print_before_and_after
def multiply(a, b):
  print(a * b)

multiply(5, 10)
Modifier et exécuter le code