Menu
Coddy logo textTech

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.

challenge icon

Défi

Facile

On 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 à add en 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 wrapper

Exemple :

Pour un appel de fonction add(2, 3), il devrait être affiché,

Calling add with arguments (2, 3)
add returned: 5

Essayez vous-même

# Écrivez le code ici


def add(a, b):
    return a + b

Toutes les leçons de Les décorateurs Python

Entraînez-vous par vous-même : Compilateur Python en ligne