ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して複数のデコレータを組み合わせるのは適切ですか?

Python を使用して複数のデコレータを組み合わせるのは適切ですか?

伊谢尔伦
リリース: 2017-06-28 13:24:38
オリジナル
2102 人が閲覧しました

この記事では、複数のデコレーターをマージするための Python のヒントを主に紹介します。この記事では、関数 の書き換えと呼び出しを使用して、複数のデコレーターを 1 つの行と 1 つの関数にマージして、それを必要とする友人が参照できるようにします。多くの API を記述する必要があり、各関数には

@csrf_exempt  
@require_POST  
def  foo(request):  
    pass
ログイン後にコピー

などの複数のデコレータが必要です。非常に多くのメソッドが 2 つ以上のデコレータを記述する必要があるため、複数のデコレータを 1 行にマージする方法はありますか? 上記関数の実行処理は

コードは以下の通りです:

csrf_exempt(require_POST(foo))
ログイン後にコピー

def compose(*funs):  
    def deco(f):  
        for fun in reversed(funs):  
            f = fun(f)  
        
return f  
return deco
ログイン後にコピー

に書き換えます 関数を

@compose(csrf_exempt, require_POST)  
def foo(request):  
    pass
ログイン後にコピー
に書き換えます

以上がPython を使用して複数のデコレータを組み合わせるのは適切ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート