ホームページ  >  記事  >  バックエンド開発  >  Python で関数に複数のデコレータを追加する方法

Python で関数に複数のデコレータを追加する方法

anonymity
anonymityオリジナル
2019-05-24 15:10:074190ブラウズ

Python で複数のデコレータを関数に追加する方法: [@decorator1 @decorator2] のように、関数名の前に @ を使用してデコレータを 1 つずつ追加できます。オブジェクトと同様に、デコレーターは変数に割り当てたり、他の関数で定義したりできます。

Python で関数に複数のデコレータを追加する方法

Python の関数はオブジェクトであり、割り当てて定義することができます。複数のデコレータは関数名の前に @ を使用して 1 つずつ追加する必要があります。順序は上から下へ、関数デコレーターで特定の操作プロセスを実行する必要があります。

まず、関数はオブジェクトであることがわかっているため、オブジェクトは変数に割り当てたり、他の関数で定義したりできます。

デコレータについても同様です。この例では、2 つのデコレータがカスタマイズされ、次に 2 つのデコレータが test() 関数に追加され、実行結果は正常です。

#!/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()

実行結果:

hello python 之前
hello python!
hello python 之后

以上がPython で関数に複数のデコレータを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。