Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
talit:tutorial_oop3 [2025-05-19 20:13] – hof | talit:tutorial_oop3 [2025-05-26 14:11] (aktuell) – [Aufgabe F] hof | ||
---|---|---|---|
Zeile 307: | Zeile 307: | ||
Wie sieht die `ConsoleLearner.learn` Methode jetzt aus? | Wie sieht die `ConsoleLearner.learn` Methode jetzt aus? | ||
- | |||
## Speichern & Lesen | ## Speichern & Lesen | ||
Wir möchten `VocabularyUnits` in eine Datei speichern und von dort wieder lesen können. Es bietet sich an, eine Unit als JSON-Objekt zu speichern. JSON (JavaScript Object Notation) sind Dictionaries, | Wir möchten `VocabularyUnits` in eine Datei speichern und von dort wieder lesen können. Es bietet sich an, eine Unit als JSON-Objekt zu speichern. JSON (JavaScript Object Notation) sind Dictionaries, | ||
Zeile 315: | Zeile 314: | ||
</ | </ | ||
+ | Eine ganze Unit wäre dann eine Liste solcher Objekte: | ||
+ | |||
+ | <code python> | ||
+ | [ | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | ] | ||
+ | </ | ||
### Aufgabe E: JSON-Serialisierung | ### Aufgabe E: JSON-Serialisierung | ||
Zeile 325: | Zeile 344: | ||
import json | import json | ||
with open(filename, | with open(filename, | ||
- | json.dump(json_list, | + | json.dump(json_list, |
</ | </ | ||
+ | |||
### Statische Methoden | ### Statische Methoden | ||
Zeile 355: | Zeile 375: | ||
return VocabularyUnit(pairs) | return VocabularyUnit(pairs) | ||
</ | </ | ||
+ | ### Aufgabe F | ||
+ | Füge statische Methoden zu `VocabularyUnit` und `WordPair` hinzu, um die gespeicherten Daten wieder einlesen zu können. | ||
+ | |||
+ | Ein Beispielprogramm für unseren Code könnte nun so aussehen: | ||
+ | |||
+ | <code python> | ||
+ | from voci import * | ||
+ | |||
+ | filename = ' | ||
+ | unit = VocabularyUnit.read_from(filename) | ||
+ | |||
+ | learner = ConsoleLearner() | ||
+ | try: | ||
+ | learner.learn(unit) | ||
+ | unit.print_stats() | ||
+ | finally: | ||
+ | unit.save_to(filename) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ### Aufgabe G - Webapp | ||
+ | S. auch [[talit: |