2016-10-19 4 views
2

pylintはデコレータを考慮していないようです。pylint:デコレータを理解するようにする

私は

@decorator 
def foo(arg1, arg2): 
    pass 

def foo(arg2): 
    pass 

なるがpylintは、私がfooを呼び出すときに、私は引数が欠けていることに不満を保持していること、そのようなデコレータを持っています。私はむしろ、これらの装飾された機能のためにも非常に便利なので、この警告を無効にしません。 に理解する方法がありますか、男性

+0

警告は消えませんか?それがわかったら私は意味する。それはそうではないと仮定します。 –

+0

'foo( 'one argument')'を使用するコードは、デコレータが余分な引数を渡すので、無効とフラグされますか? –

+0

'' 'foo( 'bar')' ''と書くと、 '' '' 'bar''''を' '' arg1'''と解釈し、 '' '' 'argument arg2'''を文句を言います。 – JonathanR

答えて

0

あなたは

ような
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)) 

何かを持っている場合は、あなたのコード内であまりにも多くの変更を要求しない単純な解決策はただ単に構文糖である@を、忘れることです。わたしにはできる。

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

print(z(5)) 
+0

これはいいですし、autospecでの嘲笑も解決します。醜い構文については恥ずかしい。 – JonathanR

関連する問題