Pyflakes nicht sehr gut mit dem folgenden Code befasst:fix Pyflakes mit @property Setter Dekorateur Umgang
@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
Mit vim und syntastic die Pyflakes ich folgende Fehlermeldung erhalten verwendet:
W806 redefinition of function 'nodes' from line 5
So Ich bekomme Warnungen über @nodes.setter
, weil ich nodes
neu definiere.
Wie deaktiviere ich diese nutzlose Warnung, da dieser Code korrekt ist? Oder welcher Python-Checker behandelt diesen Code korrekt?
aktualisieren
ich in einige Probleme lief, wenn ich meinen Code Refactoring, weil Eigenschaften und Funktionen unterschiedliche Verhalten Vererbung haben. Der Zugriff auf Eigenschaften einer Basisklasse ist anders. siehe:
- 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?
so neige ich jetzt diese Syntax zu vermeiden und stattdessen geeignete Funktionen verwenden.
mein Code bricht, wenn ich diese 'Fixes' sinse anwende benutze ich override '__setattr__' wo der' Object .__ setattr__' Aufruf Ich mache keinen Fehler, wenn ich die Setter Methode umbenenne. Es kann die Knotenmethode nicht finden. – Stephan
konntest du es nicht mit 'del _nodes_setter' folgen –