2016-10-19 9 views
2

pylint는 데코레이터를 고려하지 않습니다.pylint : 데코레이터 이해하기

나는

@decorator 
def foo(arg1, arg2): 
    pass 

def foo(arg2): 
    pass 

이되고 있지만, pylint 내가 foo를 호출 할 때 인수를 누락 불평 유지되도록 장식이있다. 장식 된 함수들조차도 꽤 유용하기 때문에 나는이 경고를 비활성화하지 않을 것입니다. 방법은 그냥 이해가 남자? 그냥 @ 잊지하는 것입니다 코드에 너무 많은 변화를 요구하지 않는

def decorator(f): 
    def wrapper(*args, **kwargs): 
     return f(1, *args, **kwargs) 
    return wrapper 

@decorator 
def z(a, b): 
    return a + b 

print(z(5)) 

간단한 해결책처럼 뭔가가있는 경우

+0

경고가 사라지지 않습니까? 이해한다면 나는 의미한다. 그것을하지 않는다고 가정합니다. –

+0

'foo ('one argument')'를 사용하는 코드는 장식자가 추가 인수를 전달하기 때문에 유효하지 않은 플래그가 있음을 의미합니까? –

+0

'''foo ('bar')'''라고 쓰면 bar''''를''arg1'''로 해석하고''누락 된 인자 arg2'''를 씁니다. – JonathanR

답변

0

, 즉 단지 문법 설탕입니다. 그것은 나를 위해 작동합니다.

def z(a, b): 
    return a + b 
z = decorator(z) 

print(z(5)) 
+0

그것은 좋고 또한 autospec로 조롱을 해결합니다. 추악한 구문에 대한 수치심. – JonathanR