Textadventure PyQT Klassenobjekt in eine Datei speichern
-
- User
- Beiträge: 15
- Registriert: Dienstag 15. Dezember 2020, 00:41
- __blackjack__
- User
- Beiträge: 13111
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@MartinausWien: Wenn es tatsächlich nur ein einzelner Raumname als Zeichenkette ist, wäre das einfachste eine Textdatei die diesen einen Namen enthält. Ansonsten wäre JSON eine Möglichkeit für die es in der Standardbibliothek ein Modul gibt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 15
- Registriert: Dienstag 15. Dezember 2020, 00:41
Hi, eine Textdatei habe ich bei der Itemliste (Schwert, Stein etc.) verwendet und die wird bei Spielstandsicherung als .txt abgespeichert.__blackjack__ hat geschrieben: ↑Donnerstag 17. Dezember 2020, 10:02 @MartinausWien: Wenn es tatsächlich nur ein einzelner Raumname als Zeichenkette ist, wäre das einfachste eine Textdatei die diesen einen Namen enthält. Ansonsten wäre JSON eine Möglichkeit für die es in der Standardbibliothek ein Modul gibt.
Beim Raum handelt es sich um ein ganzes Klassenobjekt (ein Raum der Klasse Room) mit all seinen Attributen.
Dieses brauche ich nach dem Laden wieder, da z.B auch die Ausgänge zu anderen Räumen etc. in der Klasse definiert sind.
Würde ich nur den Raumnamen als .txt abspeichern, müsste ich diesen dann nach dem Laden wieder irgendwie dem Objekt zuordnen, über
ein Wörterbuch etc, was auch geht, aber mehr Schritte benötigt, als wenn der Raum gleich wieder "da" ist.
JSON, will ich mir unbedingt mal ansehen, habe mich damit noch gar nicht beschäftigt, aber ist mir immer wieder mal untergekommen,
plattformunabhängiger Datenaustausch, hm, wenn du es jetzt auch gleich erwähnst..
danke mal __Blackjack__. , lg Martin
-
- User
- Beiträge: 15
- Registriert: Dienstag 15. Dezember 2020, 00:41
kurzer Nachtrag: hab jetzt nochmal bissl recherchiert.
Da gibt es ja viele Beiträge zu z.B JSON vs. Pickle. Was ist schneller, Vorteile Nachteile etc. , sehr interessant.
angeblich ist Pickle bei komplexer Objektserialisierung viel schneller, JSON dafür bei fast allem anderen, funktioniert aber nicht bei allen Python Objekten.
Da ich ja mit Pickle eh ein Objekt speichere wird es denk ich kein großer Nachteil sein fürs Objekt pickle zu verwenden.
JSON werde ich jetzt mal studieren, wieder was zu lernen cool. lg
Da gibt es ja viele Beiträge zu z.B JSON vs. Pickle. Was ist schneller, Vorteile Nachteile etc. , sehr interessant.
angeblich ist Pickle bei komplexer Objektserialisierung viel schneller, JSON dafür bei fast allem anderen, funktioniert aber nicht bei allen Python Objekten.
Da ich ja mit Pickle eh ein Objekt speichere wird es denk ich kein großer Nachteil sein fürs Objekt pickle zu verwenden.
JSON werde ich jetzt mal studieren, wieder was zu lernen cool. lg
Du hast den Raum mit all seinen Daten schon erzeugt, und den kannst Du schon über den Namen im passenden Wörterbuch nachschlagen. Daher ist es völlig unnötig, den Raum als Objekt in eine Datei zu packen. Du packst ja auch nicht alle anderen Räume mit rein.MartinausWien hat geschrieben: ↑Donnerstag 17. Dezember 2020, 10:28 Beim Raum handelt es sich um ein ganzes Klassenobjekt (ein Raum der Klasse Room) mit all seinen Attributen.
Dieses brauche ich nach dem Laden wieder, da z.B auch die Ausgänge zu anderen Räumen etc. in der Klasse definiert sind.
-
- User
- Beiträge: 15
- Registriert: Dienstag 15. Dezember 2020, 00:41
Hi danke Sirius3,
Es wird langsam immer klarer..
Wenn ich es richtig verstanden habe: gibt es 2 Varianten die möglich sind.
1.) Version ohne Wörterbuch, dafür muss ich aber das Raumobjekt mit z.B pickle in eine Datei packen. nach dem Laden ist (raumjetzt) wieder als Objekt da.
2.) Version mit Wörterbuch, dafür reicht der gespeicherte Raumname, (z.B .txt, kein pickle) welcher nach dem Laden im passenden Wörterbuch nachgeschlagen wird
um raumjetzt wieder herzustellen.
Wenn das soweit richtig ist, gibt es Eurer Meinung klare Vorteile einer Version, d.h was ist die schnellere Version.
Es wird langsam immer klarer..
Wenn ich es richtig verstanden habe: gibt es 2 Varianten die möglich sind.
1.) Version ohne Wörterbuch, dafür muss ich aber das Raumobjekt mit z.B pickle in eine Datei packen. nach dem Laden ist (raumjetzt) wieder als Objekt da.
2.) Version mit Wörterbuch, dafür reicht der gespeicherte Raumname, (z.B .txt, kein pickle) welcher nach dem Laden im passenden Wörterbuch nachgeschlagen wird
um raumjetzt wieder herzustellen.
Wenn das soweit richtig ist, gibt es Eurer Meinung klare Vorteile einer Version, d.h was ist die schnellere Version.