Seit Python Version 3.7 gibt es ein neues Modul für spezielle Daten-Klassen, die dataclasses.
https://docs.python.org/3.7/library/dataclasses.html
@dataclass decorator für eine Klasse benutzen
Mit dem dataclass decorator ergeben sich viele neue Möglichkeiten Daten-Klassen basierend auf ihren Klassenvariablen zu erzeugen. Ein entsprechender decorator markiert eine Klasse als dataclass. Damit wird dafür gesorgt, dass automatisch eine __init__() Methode erzeugt wird, die die Klassenvariablen als Argumente enthält. Sind die Klassenvariablen mit entsprechenden Typen annotiert, erfolgt auch automatisch eine Prüfung in der IDE.
![](https://einfachpython.de/wp-content/uploads/2020/07/dataclasses_type_error-2.png)
Ein einfaches Beispiel zeigt, wie eine dataclass benutzt werden kann.
from dataclasses import dataclass
@dataclass
class Car:
manufacturer: str = None
model: str = None
color: str = None
length: float = None
seats: int = None
is_suv: bool = None
def main():
new_car = Car(
manufacturer="Tesla",
model="Model X",
color="blue",
length=5.0,
seats=5,
is_suv=True,
)
print(new_car)
if new_car.is_suv:
print(f"{new_car.manufacturer} {new_car.model} is a SUV")