Ich bekomme den Fehler:
%Vor% %Vor% Ich bin mir sicher, dass dies ein bekanntes Paradigma ist, da es wie ein ziemlich häufiges hierarchisches Klassennutzungs-Problem aussieht (eine selbst-referenzierende Klasse). Ich weiß, ich könnte den Typ von its_parent_org_unit
ändern, um object
zu sein, und es funktioniert, aber das scheint wie das Falsche zu tun, vor allem, weil es meine Fähigkeit, Typen in meinen Aufrufen zu überprüfen. Wenn its_parent_org_unit
geändert wurde, um ein Typ object
zu sein, bekomme ich die richtigen Ergebnisse:
Ich bin offen für Gedanken und Vorschläge. Was ist der "pythischste" Weg, um so etwas zu tun?
PS: Wie lautet der Name für diese Art von "self referencing class" Paradigma / Problem, mit dem ich andere Vorschläge nachschlagen könnte?
Ihr Problem ist, dass Sie Typhinweise verwenden wollen, aber Sie wollen, dass diese Klasse selbst Argumente ihres eigenen Typs annehmen kann.
Die Typhinweise PEP (0484) erklärt, dass Sie die Zeichenfolgenversion des Typs verwenden können Name als Forward-Referenz . Das Beispiel besteht aus einer Tree
Datenstruktur, die diesem OrgUnit
one bemerkenswert ähnlich klingt.
Zum Beispiel funktioniert das:
%Vor% In Python 3.7 können Sie die verschobene Auswertung von Annotationen mit from __future__ import annotations
aktivieren. . Dies speichert Annotationen automatisch als Strings, anstatt sie zu bewerten, was Sie tun können
Dies ist der Standard in Python 4.0.
Tags und Links python class type-hinting