Dataclasses verwenden
Klassisch vs dataclass
from dataclasses import dataclass
@dataclass
class Aufgabe:
titel: str
erledigt: bool = False
punkte: int = 0
a = Aufgabe("Hausaufgaben")
print(a)
print(a.titel)
a.erledigt = True
Dataclass erzeugt automatisch nützliche Basics (z. B. lesbare Ausgabe).
Viele Aufgaben
todo = [
Aufgabe("Mathe", punkte=2),
Aufgabe("Sport", erledigt=True),
]
offen = [t for t in todo if not t.erledigt]
Rate mal!
Braucht man __init__ von Hand?
Auflösung
Meist nein – dataclass erzeugt es aus den Feldern.
Probiere es selbst
Experiment 1
dataclass Spieler.
Experiment 2
Default-Wert.
Experiment 3
Liste filtern.
Fehlerdetektiv
Felder ohne Typ-Hint – dataclass mag Typen an Feldern.
Übungen
Level 1
Buch mit titel, autor.
Level 2
Default seiten: int = 0.
Level 3
Liste von Büchern, Titel printen.
Level-1-Lösung
from dataclasses import dataclass
@dataclass
class Buch:
titel: str
autor: str
print(Buch("Python", "Club"))
Mini-Quiz
Dataclass sitzt! Mini-Projekt: Aufgabenmodell.