Est-il approprié de combiner plusieurs décorateurs à l'aide de Python ?

伊谢尔伦
Libérer: 2017-06-28 13:24:38
original
2083 Les gens l'ont consulté

Cet article présente principalement les astuces pour fusionner plusieurs décorateurs en Python Cet article utilise la méthode de réécriture et d'appel de la fonction pour fusionner plusieurs décorateurs en une seule ligne et une seule fonction. En appelant, les amis qui en ont besoin peuvent se référer au programme

django. Vous devez écrire beaucoup d'API, et chaque fonction nécessite plusieurs décorateurs, tels que

@csrf_exempt  
@require_POST  
def  foo(request):  
    pass
Copier après la connexion
<. 🎜>Dans ce cas, plusieurs méthodes doivent écrire deux décorateurs, ou plus. Existe-t-il un moyen de combiner plusieurs décorateurs en une seule ligne ?

Le processus d'exécution de la fonction ci-dessus doit être

Le code est le suivant :

csrf_exempt(require_POST(foo))
Copier après la connexion
est modifié en

def compose(*funs):  
    def deco(f):  
        for fun in reversed(funs):  
            f = fun(f)  
        
return f  
return deco
Copier après la connexion
La fonction est réécrit comme

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal