この記事では、複数のデコレーターをマージするための 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 サイトの他の関連記事を参照してください。