我一直在研究一個有屬性的類,但是我們遇到了一個令人討厭的問題,使用了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隱藏該方法
我看不出有任何問題與您的代碼 - 也許你應該報告。 – aquavitae 2012-03-09 09:32:53