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.
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")