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 и синтаксис, который использует pyflakes, я получаю следующую ошибку:
W806 redefinition of function 'nodes' from line 5
Итак, я получаю предупреждения о @nodes.setter
, потому что я переопределяю nodes
.
Как отключить это бесполезное предупреждение, поскольку этот код верен? Или какой контролер python имеет дело с этим кодом правильно?
Обновление
Я столкнулся с некоторыми проблемами, когда я реорганизовал свой код, потому что свойства и функции имеют различное поведение наследования. Доступ к свойствам базового класса отличается. см.:
- Как вызвать свойство базового класса, если это свойство перезаписывается в производном классе?.
- Атрибуты класса и базового класса на основе Python?
поэтому теперь я стараюсь избегать этого синтаксиса и вместо этого использовать правильные функции.