Überschreiben einer schreibgeschützten Eigenschaft mit einer schreibgeschützten Spalte, die denselben Wert erhält

8

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:

%Vor%

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:

%Vor%

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?

    
Markus Meskanen 29.01.2017, 16:49
quelle

1 Antwort

1

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:

%Vor%

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.

    
univerio 31.01.2017, 20:47
quelle

Tags und Links