Datenklasse
Dieser Gast trägt schon zwei Dinge in sich, das Wort nora und den Sitzplatz 12, und trotzdem hast du kein init dafür geschrieben. Die Zeile @dataclass über Guest baut diese Vorbereitung aus den Feldern. Dabei wird kein Paket installiert und kein Ordner angelegt.
from dataclasses import dataclass
@dataclass
class Guest:
name: str
seat: int
guest = Guest("nora", 12)
print(guest)
Den Gast selbst baust du weiterhin von Hand: Guest("nora", 12). Zuerst steht das Wort, dann die Zahl, denn so ist die Reihenfolge der Felder. Die Zeilen name: str und seat: int sind diese Felder; sie bauen keinen zweiten Gast und legen keinen Ordner an.
Mit print(guest) steht auf dem Bildschirm genau eine Zeile: Guest(name='nora', seat=12). Beide Werte stehen darin nebeneinander. Der Gast steckt in keinem anderen Objekt, und Guest ist kein Kind einer anderen Klasse. Die Anführungszeichen um nora gibt es, weil es das gespeicherte Wort ist; 12 steht ohne sie da, denn es ist eine ganze Zahl ohne Dezimalpunkt. print schreibt die Zeile, guest.name ist nora, guest.seat ist 12. Eine zweite Zeile gibt es nicht, badge wird nicht ergänzt, und blue wird nicht geschrieben. str hast du nie getippt – die Form der gedruckten Zeile stammt von @dataclass. Ohne print bleibt der Bildschirm leer, denn einen Gast zu bauen heißt noch nicht, ihn zu schreiben.
Lässt du den Sitzplatz weg, hält das Programm an. Guest("nora") steht gar nicht im Programm; stünde es dort, endete es mit einem TypeError, weil dem Feld seat ein Wert fehlt. None wird nicht geschrieben, und das Programm läuft nicht weiter.
Ein Gast, zwei Felder
Hier gibt es einen einzigen Gast, und beide Felder gehören zu ihm. Schreib deshalb nicht class Guest(Pen): Diese Form macht eine Kindklasse, und eine Tasche, in der ein Stift steckt, ist nicht das Thema dieser Seite. Auf der nächsten Seite geht es darum, einen Fehler zu suchen; diese Seite merkt sich nur einen Namen samt Sitzplatz und schreibt beides auf den Bildschirm.
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt