2016-07-26 76 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