Pyflakes不與下面的代碼處理得非常好:修復pyflakes處理@property二傳手裝飾
@property
def nodes(self):
return self._nodes
@nodes.setter
def nodes(self, nodes):
"""
set the nodes on this object.
"""
assert nodes != [] # without nodes no route..
self.node_names = [node.name for node in nodes]
self._nodes = nodes
使用vim和syntastic它採用pyflakes我得到以下錯誤:
W806 redefinition of function 'nodes' from line 5
所以我收到有關@nodes.setter
的警告,因爲我重新定義了nodes
。
如何禁用此無用警告,因爲此代碼是正確的?或者哪個python檢查器正確處理這段代碼?
更新
我遇到了一些問題,當我重構我的代碼,因爲性能和功能有不同的繼承行爲。訪問基類的屬性是不同的。參見:
- How to call a property of the base class if this property is being overwritten in the derived class?。
- Python derived class and base class attributes?
所以我現在傾向於避免這種語法和使用適當的功能來代替。
我的代碼中斷如果應用這些'修復'sinse我使用覆蓋'__setattr__',如果我重命名setters方法,我創建的Object.__ setattr__'調用失敗。它找不到節點方法。 – Stephan
難道你不能跟着它與'del _nodes_setter' –