2014-01-18 1 views
0

말의 하나의 장식 만들기, 내가 좋아하는 뭔가를? 그래서 대신 쓸 수 있도록 :아웃 여러

@both_decorators 
def myfunc() 
    # .... 

아이디어는 많은 경우 동일한 방법으로 여러 가지 데코레이터를 사용할 때 타이핑을 절약하는 것입니다.

답변

5

간단한 : 정말

def both_decorators(func): 
    return decorator1(decorator2(func)) 

그 모든 장식 할 때문에.

1

예, 가능합니다. 의 라인을 따라 뭔가 :

def both_decorators(*decs): 
    def decorator(dc): 
     for dec in reversed(decs): 
      dc = dec(dc) 
     return dc 
    return decorator 

그런 다음 당신이해야 할 모든 당신이 원하는 어떤 않을 것이다 장식을 선택할 수 있기 때문에, 개인적으로 나는이 선호 그들에게

@both_decorators(decorator1, decorator2) 
def myfunc(): 
    #something happening here. 

를 추가합니다.

+1

이렇게하면 타이핑이 덜 생성됩니다. :) – dragonroot

관련 문제