>  기사  >  백엔드 개발  >  Python을 사용하여 여러 데코레이터를 결합하는 것이 적합합니까?

Python을 사용하여 여러 데코레이터를 결합하는 것이 적합합니까?

伊谢尔伦
伊谢尔伦원래의
2017-06-28 13:24:382055검색

이 글에서는 주로 여러 데코레이터를 병합하기 위한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.