Utilisez les décorateurs Python

Jan 19 2023
Les décorateurs sont un outil puissant qui peut être utilisé pour ajouter des fonctionnalités aux fonctions et classes existantes sans modifier leur code. Ils peuvent être utilisés pour des tâches telles que la journalisation, la mise en cache et la validation, et peuvent aider à garder votre code organisé et maintenable.

Les décorateurs sont un outil puissant qui peut être utilisé pour ajouter des fonctionnalités aux fonctions et classes existantes sans modifier leur code. Ils peuvent être utilisés pour des tâches telles que la journalisation, la mise en cache et la validation, et peuvent aider à garder votre code organisé et maintenable.

Alors... qu'est-ce que les décorateurs ?

Un décorateur est un type spécial de fonction qui prend une autre fonction comme argument et renvoie une nouvelle fonction. La nouvelle fonction est généralement une version modifiée de la fonction d'origine et est souvent utilisée pour ajouter des fonctionnalités supplémentaires.

Comment utiliser est?

Un décorateur est appliqué à une fonction ou à une classe en plaçant le symbole "@" suivi du nom de la fonction du décorateur avant la définition de la fonction ou de la classe.

Voici un exemple de décorateur simple qui ajoute une fonctionnalité de journalisation à une fonction :

def log_decorator(func):
    def wrapper(*args, **kwargs):
        print("Calling function:", func.__name__)
        result = func(*args, **kwargs)
        print("Function returned:", result)
        return result
    return wrapper

@log_decorator
def my_function(x, y):
    return x + y

my_function(1, 2)

La sortie de ce code sera :

Calling function: my_function
Function returned: 3

Les décorateurs de dose peuvent obtenir des valeurs ?

Oui! Vous pouvez également passer des arguments aux décorateurs très facilement

def repeat(num):
    def repeat_decorator(func):
        def wrapper(*args, **kwargs):
            for i in range(num):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return repeat_decorator

@repeat(num=3)
def my_function(x):
    return x * x

print(my_function(3))

Se souvenir?

Les décorateurs sont un type spécial de fonctions qui prennent une autre fonction comme argument et renvoient une nouvelle fonction, généralement une version modifiée de la fonction d'origine, qui est utilisée pour ajouter des fonctionnalités. Ils sont appliqués à une fonction ou à une classe en plaçant le symbole "@" suivi du nom de la fonction du décorateur avant la définition de la fonction ou de la classe. Ils peuvent également prendre des arguments pour personnaliser davantage le comportement du décorateur.

Bonne chance Shilo