2012-03-09 52 views
4

我一直在研究一個有屬性的類,但是我們遇到了一個令人討厭的問題,使用了pylint(0.25.1)在下面的代碼中,我們定義了一個類,它引入了python 2.6 然而,pylint嗚嗚聲在__init__方法self.aProperty中將覆蓋名爲aProperty的已定義方法。我也粘貼了控制檯的輸出和pylint消息的輸出。Pylint E0202誤報?或者這段代碼錯了?

這是'請向pylint開發者報告'還是這個(例子)代碼錯了?

"""example module""" 

class Example(object): 
    """example class""" 

    @property 
    def aProperty(self): 
     """get""" 
     print "using getter" 
     return self._myPropertyValue 

    @aProperty.setter 
    def aProperty(self, value): 
     """set""" 
     print "using setter" 
     self._myPropertyValue = value 

    def secondPublicMethodToIgnorePylintWarning(self): 
     """dummy""" 
     return self.aProperty 

    def __init__(self): 
     """init""" 
     self._myPropertyValue = None 

     self.aProperty = "ThisStatementWillRaise E0202" 

anExample = Example() 
print anExample.aProperty 

anExample.aProperty = "Second binding" 
print anExample.aProperty 

控制檯輸出:使用設定器

使用getter
ThisStatementWillRaise E0202
使用設定器
使用getter
第二結合

Pyli NT輸出:

E0202:7,4:Example.aProperty:屬性在TEST1線影響26隱藏該方法
E0202:13,4:Example.aProperty:屬性影響在TEST1線26隱藏該方法

+1

我看不出有任何問題與您的代碼 - 也許你應該報告。 – aquavitae 2012-03-09 09:32:53

回答

3

看到http://www.logilab.org/ticket/89092,一個補丁將很快被集成到pylint的解決這個PB

+0

沒有注意到一個。不管怎麼說,還是要謝謝你。我也提交了一張新票。 – 2012-03-12 00:51:37