Pyflakes не очень хорошо справляется со следующим кодом:
@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 правильно обрабатывает этот код?
Обновить
Я столкнулся с некоторыми проблемами, когда рефакторил свой код, потому что свойства и функции имеют разное поведение наследования. Доступ к свойствам базового класса отличается. видеть:
- Как вызвать свойство базового класса, если это свойство перезаписывается в производном классе?.
- Атрибуты производного класса и базового класса Python?
поэтому теперь я стараюсь избегать этого синтаксиса и вместо этого использую правильные функции.