이 글에서는 주로 여러 데코레이터를 병합하기 위한 Python 팁을 소개합니다. 이 글에서는 함수를 다시 작성하고 호출하여 여러 데코레이터를 한 줄로 병합하고 호출할 함수를 하나씩 소개합니다.
django프로그램 많은 API를 작성해야 하고 각 함수에는
@csrf_exempt @require_POST def foo(request): pass
와 같은 여러 개의 데코레이터가 필요합니다. 2개 이상의 데코레이터를 작성해야 하는 메소드가 너무 많기 때문에 여러 데코레이터를 한 줄로 병합할 수 있는 방법이 있습니까?
위 함수 실행 과정은
코드는 다음과 같습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!