Python Lernhandbuch

Kapitel 7: Klassen und Objekte · Abschnitt 5 von 5

dataclass: Klassen ohne Schreibarbeit

Für Klassen, die vor allem Daten halten, erzeugt @dataclass __init__, __repr__ und __eq__ automatisch.

python
from dataclasses import dataclass, field

@dataclass
class Kunde:
    name: str
    stadt: str = 'Wien'
    tags: list[str] = field(default_factory=list)   # nie tags: list = [] schreiben!

k = Kunde('Anna')
print(k)                     # Kunde(name='Anna', stadt='Wien', tags=[])
k.tags.append('vip')
Parameter von @dataclass Wirkung
frozen=True Objekt ist nach dem Erzeugen unveränderlich
order=True Erzeugt Vergleiche (<, >), damit sorted funktioniert
slots=True Spart Speicher

Dataclasses sind ideal, um eine Zeile aus der Datenbank oder einer API als sauberes Objekt abzubilden.

Tipp: Bei Python-Beispielen kannst du auf ▶ Ausprobieren klicken, den Code verändern und direkt ausführen.

← Zurück