5 coole neue Features in Python 3.7
Von Idego Group

Python 3.7 erschien am 27. Juni 2018 und führte neben bedeutenden Leistungsverbesserungen mehrere überzeugende Neuerungen ein. Das Release umfasste eine breakpoint()-Funktion, reservierte Schlüsselwörter für async/await, __getattr__- und __dir__-Methoden auf Modulebene, Timing-Funktionen mit Nanosekundenauflösung, verzögerte Auswertung von Typ-Hinweisen, Kontextvariablen und Datenklassen.
Datenklassen stellen den bedeutendsten Fortschritt in dieser Version dar. Sie ermöglichen es Entwicklern, strukturierteren und lesbareren Code zu erstellen, indem sie den Boilerplate-Aufwand reduzieren. Durch den @dataclass-Dekorator aus dem neuen dataclasses-Modul können Programmierer automatisch __init__- und __repr__-Methoden mit minimalem Code generieren.
Über die grundlegende Verwendung hinaus unterstützen Datenklassen Sortierfunktionen. Der Parameter @dataclass(order=True) ermöglicht Vergleichsoperationen und Sortierung. Die field()-Funktion ermöglicht die Anpassung einzelner Attribute, beispielsweise das Ausschließen bestimmter Felder aus der Sortierlogik.
Der Dekorator akzeptiert mehrere Parameter, die generierte Methoden steuern: init, repr, eq, order, unsafe_hash und frozen. Diese Parameter gewähren feinkörnige Kontrolle darüber, welche speziellen Methoden automatisch erstellt werden.
Datenklassen unterstützen Vererbung mit beibehaltener Feldreihenfolge von Elternklassen und halten logische Attributsequenzen über Klassenhierarchien hinweg aufrecht.
Die asdict()-Funktion aus dataclasses bietet eine unkomplizierte Wörterbuchkonvertierung und vereinfacht die JSON-Serialisierung für die API-Kommunikation, ohne umfangreichen benutzerdefinierten Code zu benötigen.
Datenklassen erleichtern eine sauberere Trennung zwischen Datenmodellen und Geschäftslogik. Entwickler können Datenobjekte in bestehenden Codebasen identifizieren und sie mithilfe von Dekoratoren refaktorieren, um Zeilen zu reduzieren und dabei Klarheit und Wartbarkeit zu verbessern.