2016-07-26 3 views
1

デコレータの定義時にEclipseの警告を抑制したい。例えばPydevで開発中の警告Eclipseを抑制する

def tool_wrapper(func): 
    def inner(self): 
     cmd="test" 
     cmd+=func(self) 
    return inner 

@tool_wrapper 
def list_peer(self): 
    return "testing " 

私はデコレータ定義に警告を受ける:私はクラス内でデコレータを定義するので、これがある

最初のパラメータとして 「メソッド 『tool_wrapperは』自己を持っている必要があります唯一の方法、それは正常に動作しています。

おかげ

+0

を出力しますか?どうして? –

答えて

1

ちょうどクラスの外にあなたのデコレータを定義し、合格しますインスタンスを引数として使用すると、正常に動作します。

def tool_wrapper(func): 
    def inner(inst): # inst : instance of the object 
     cmd="test" 
     cmd+=func(inst) 
     return cmd 
    return inner 


class Test(): 

    def __init__(self): 
     pass 

    @tool_wrapper 
    def list_peer(self): 
     return "testing " 


if __name__ == '__main__': 
    t = Test() 
    print t.list_peer() 

このスクリプトは、あなたがクラス内にデコレータを定義しtesttesting

+0

ありがとう、それはうまく動作しています!モジュールファイルのクラス外の関数を使用して正しいPython構文ですか? –

+0

私は、あなたが必要な輸入品を作る限り – BusyAnt

関連する問題