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
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)