Python で複数のデコレータを関数に追加する方法: [@decorator1 @decorator2] のように、関数名の前に @ を使用してデコレータを 1 つずつ追加できます。オブジェクトと同様に、デコレーターは変数に割り当てたり、他の関数で定義したりできます。
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 サイトの他の関連記事を参照してください。