Python Syntax
Leçon 6 sur 12 du cours Les décorateurs Python de Coddy.
Dans la leçon précédente, nous avons vu comment créer des décorateurs de fonction, cependant, Python offre une manière beaucoup plus élégante de réaliser cette fonctionnalité en utilisant le symbole @.
Par exemple,
def my_decorator(func):
def wrapper():
print("Before function is called.")
func()
print("After function is called.")
return wrapper
@my_decorator
def my_function():
print("Inside my_function.")Lorsque nous exécutons my_function(), nous verrons une sortie comme celle-ci :
Before function is called.
Inside my_function.
After function is called.Cela montre que la fonction décoratrice my_decorator a pu modifier le comportement de my_function en ajoutant du code supplémentaire avant et après son appel.
Défi
FacileOn vous donne le code d'une fonction add.
Votre tâche consiste à écrire un décorateur de fonction nommé debug, comme dans la leçon précédente, mais avec quelques ajouts :
- Appliquez le décorateur de fonction
debugàadden utilisant le symbole@. - La fonction debug doit prendre en charge les arguments de la fonction.
Pour prendre en charge une fonction avec des arguments dans un décorateur,
def my_decorator(func):
def wrapper(a, b):
print("Before function is called.")
func(a, b)
print("After function is called.")
return wrapperExemple :
Pour un appel de fonction add(2, 3), il devrait être affiché,
Calling add with arguments (2, 3)
add returned: 5Essayez vous-même
# Écrivez le code ici
def add(a, b):
return a + bToutes les leçons de Les décorateurs Python
Entraînez-vous par vous-même : Compilateur Python en ligne