Maison > développement back-end > Tutoriel Python > Les décorateurs Python peuvent-ils accepter des paramètres ?

Les décorateurs Python peuvent-ils accepter des paramètres ?

Mary-Kate Olsen
Libérer: 2024-12-20 18:13:18
original
976 Les gens l'ont consulté

Can Python Decorators Accept Parameters?

Les décorateurs peuvent-ils prendre des paramètres ?

Le code tente d'utiliser un décorateur (@execute_complete_reservation) avec un argument (insurance_mode), mais il échoue . Cela se produit parce que les décorateurs avec des paramètres ont une syntaxe différente.

Syntaxe du décorateur révisée :

Les décorateurs avec des paramètres renvoient des fonctions qui prennent une fonction comme argument, puis en renvoient une autre. fonction. Il renvoie essentiellement un décorateur normal.

def decorator_factory(argument):
    def decorator(function):
        def wrapper(*args, **kwargs):
            # Additional code
            function(*args, **kwargs)
            # More additional code
        return wrapper
    return decorator
Copier après la connexion

Application du décorateur :

En utilisant cette syntaxe, le code original peut être révisé comme suit :

@execute_complete_reservation_factory(True)
def test_booking_gta_object(self):
    self.test_select_gta_object()
Copier après la connexion

Dans ce code révisé, @execute_complete_reservation_factory est une fonction d'usine qui renvoie un décorateur qui prend la fonction de test réelle comme argument.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal