Ich wollte eingangs nur ein
Minimalbeispiel liefern, bei welchem der Hinweis von PyCharm auftritt. Nachfolgend ist ein Beispiel, bei welchem der Konstruktor überschrieben wurde, jedoch zuvor Berechnungen ausführt:
Code: Alles auswählen
class BoundingBox(namedtuple('BoundingBoxT', 'x y width height')):
"""A par-axial rectangle to represent a bounding box (gosh!). """
def __new__(cls, x: Num, y: Num, width: Num, height: Num) -> 'BoundingBox':
return tuple.__new__(cls, (x if width > 0 else x + width,
y if height > 0 else y + height,
abs(width),
abs(height)))
Die Klasse
BoundingBox stellt weitere Methoden bereit, daher leite ich direkt von dem
nametuple ab.
@Sirius3: Siehe neues Beispiel. Redefinieren von __new__ ist in dem eingangs genannten Beispiel nicht notwendig. Das ist mir auch bewusst.
Nun, dann muss ich wohl mit den Warnungen leben oder diese für die entsprechenden Codebereiche gezielt abschalten
Nachtrag: Ich habe soben auf die PyCharm Community Edition 2017.
2.3 aufgerüstet. Einige Hinweise sind entfallen, andere hinzugekommen (false positives). Der oben genannte bleibt.
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"