Eine Spielengine stellt mir eine Player
Klasse zur Verfügung, die eine uniqueid
schreibgeschützte Eigenschaft hat, um Spieler zu identifizieren. Ich würde das gerne in eine SQLAlchemy Column
"umwandeln", damit ich die Spieler damit abfragen kann:
So sieht meine Klasse derzeit aus:
%Vor% Als nächstes möchte ich eine schreibgeschützte Schnittstelle für die _uniqueid
erstellen, so dass die API-Benutzer nicht mehr in die Variable schreiben können (gut, sie können durch _uniqueid
, aber das liegt in ihrer Verantwortung seit dem Zugriff darauf sollte passieren durch die nicht-private uniqueid
).
Ich denke, das ursprüngliche uniqueid
mit einem neuen zu überschreiben:
Dies ist schreibgeschützt und "versteckt" das ursprüngliche _uniqueid
und verhindert, dass jemand darauf schreibt, es sei denn, es wird absichtlich auf das private zugegriffen (ich werde es nicht einmal in der Dokumentation aufführen. Privatperson).
Das einzige Problem ist, dass dieses vollständig das alte überschreibt, was bedeutet, dass mein __init__
% s% s% nicht funktioniert, weil _uniqueid=self.uniqueid
das neue Getter, nicht der alte.
Also zusammengefasst, was ich will ist, eine schreibgeschützte Eigenschaft in eine schreibgeschützte Datei zu konvertieren, die zur Abfrage mit SQLAlchemy verwendet werden kann. Ist das möglich und wenn, wie?
Sie können super
verwenden, um auf die Eigenschaft von game.Player
zuzugreifen. Wir können einen einfachen C-Erweiterungstyp verwenden, der mit Cython erstellt wurde:
Wegen der Prekarität des Erbens von C-Erweiterungstypen funktioniert dies möglicherweise nicht oder hängt nicht davon ab, welche C-Magie der game.Player
-Typ verwendet.
Auch wenn das ORM __init__
umgeht, wenn es Instanzen von der Datenbank lädt, müssen Sie in die load
-Ereignis, um den game.Player
-Typ zu initialisieren.
Tags und Links python python-3.x sqlalchemy