-->

python decorator with arguments

Python Decorator with Arguments : Powerful Customization of Functions

Python Decorator with Arguments : Powerful Customization of Functions

Introduction

Les décorateurs en Python sont des fonctions qui permettent de modifier le comportement d'autres fonctions. Ils sont souvent utilisés pour ajouter des fonctionnalités supplémentaires à une fonction existante sans avoir besoin de modifier son code source. Les décorateurs avec arguments sont une extension puissante des décorateurs classiques, car ils offrent une personnalisation encore plus grande des fonctions. Dans cet article, nous allons explorer comment utiliser les décorateurs avec arguments pour étendre et personnaliser les fonctions Python.

Création d'un Décorateur avec Arguments

Pour créer un décorateur avec arguments, nous utilisons en fait deux niveaux de fonctions. Voici comment cela fonctionne :

  • Niveau 1 : Nous créons une fonction externe (décorateur) qui prend les arguments personnalisés et retourne une fonction interne (le vrai décorateur).
  • Niveau 2 : La fonction interne prend la fonction à décorer en tant qu'argument, ajoute les fonctionnalités supplémentaires selon les arguments et retourne la fonction modifiée.

Exemple de Décorateur avec Arguments

Voici un exemple de décorateur avec arguments qui ajoute une fonctionnalité de mise en forme à une fonction d'affichage de texte :

        
def format_output(formatter):
    def real_decorator(func):
        def wrapper(*args, **kwargs):
            result = func(*args, **kwargs)
            return formatter(result)
        return wrapper
    return real_decorator

@format_output(formatter=lambda x: f"<strong>{x}</strong>")
def display(text):
    return text

print(display("Bonjour, le monde!"))
# Résultat : <strong>Bonjour, le monde!</strong>
        
    

Conclusion

Les décorateurs avec arguments offrent une flexibilité incroyable pour personnaliser le comportement des fonctions en Python. Ils permettent d'ajouter des fonctionnalités spécifiques en fonction des arguments fournis, ce qui rend le code plus modulaire, lisible et réutilisable. Les décorateurs avec arguments sont un outil puissant pour les développeurs Python, car ils leur permettent de créer des fonctions plus puissantes et personnalisées tout en conservant un code élégant et maintenable.