Maison  >  Article  >  développement back-end  >  Comment ajouter plusieurs décorateurs à une fonction en Python

Comment ajouter plusieurs décorateurs à une fonction en Python

anonymity
anonymityoriginal
2019-05-24 15:10:074205parcourir

Comment ajouter plusieurs décorateurs à une fonction en Python : Vous pouvez utiliser @ avant le nom de la fonction pour ajouter des décorateurs un par un, tels que [@decorator1 @decorator2]. Les décorateurs, comme les objets, peuvent être affectés à une variable ou définis dans d'autres fonctions.

Comment ajouter plusieurs décorateurs à une fonction en Python

Les fonctions en Python sont des objets qui peuvent être attribués et définis. Plusieurs décorateurs doivent être ajoutés un par un en utilisant @ avant le nom de la fonction. De haut en bas, le processus opérationnel spécifique doit être effectué dans le décorateur de fonction.

Tout d'abord, nous savons que les fonctions sont des objets, les objets peuvent donc être affectés à une variable ou définis dans d'autres fonctions.

Il en va de même pour les décorateurs. Dans cet exemple, deux décorateurs sont personnalisés, puis deux décorateurs sont ajoutés à la fonction test(), et le résultat de l'exécution est normal.

#!/usr/bin/env python  
#coding:utf-8  
def decorator1(func):  
    def wrapper():  
        print 'hello python 之前'  
        func()  
    return wrapper  
  
def decorator2(func):  
    def wrapper():  
        func()  
        print 'hello python 之后'  
    return wrapper  
 
@decorator1  
@decorator2  
def test():  
    print 'hello python!'  
  
test()

Résultat de l'exécution :

hello python 之前
hello python!
hello python 之后

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!

Déclaration:
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