Ein neues Major-Release von Python 3 wurde veröffentlicht. Das sind die wichtigsten neuen Features.
Mit Version 3.7 ist nach eineinhalb Jahren Entwicklungszeit ein neues Major-Release der Programmiersprache Python verfügbar. Gleichzeitig wurde auch ein Maintenance-Release von Python 3.6 veröffentlicht, das noch bis Ende 2018 Support erhält. Danach soll es für Python 3.6 noch bis zum Jahr 2021 Security-Fixes geben.
Ein herausragendes Feature in Python 3.7 sind die neuen Data-Klassen, die es erlauben, den bisher nötigen Initialisierungscode für Instanz-Variablen im Konstruktor wegzulassen. Er wird jetzt von der Python-Runtime automatisch im Hintergrund erzeugt. Damit das funktioniert, muss eine Klasse mit der Annotation "@dataclass" ausgezeichnet werden.
Die Auswertung von Annotations wurde in der Abarbeitung von Python-Scripts nach hinten verschoben. Dies löst zwei Probleme: einmal die ansonsten erhöhte Startup-Zeit von Python-Scripts, andererseits die bisher nicht vorhandene Möglichkeit, sich in Programmen auf im Quellcode noch nicht definierte Annotations zu beziehen.
Zwei Anpassungen kümmern sich um Locale-Einstellungenn respektive Zeichen-Encoding. Thread-Local Storage hat eine neue C-API bekommen, und einige neue Zeit-Funktionen besitzen jetzt Nanosekunden-Auflösung.
Die Aktualität der aus dem Quellcode in Bytecode compilierten .pyc-Files wird jetzt über Hashes ermittelt statt wie bisher über Datumsstempel in den Metadaten. Dies soll sicherstellen, dass Änderungen an den Quellcode-Files auch in jedem Fall zu neuem Bytecode führt.
Schließlich gibt es noch umfangreiche Änderungen im Bereich der asynchronen Programmierung: Hier sind "async" und "await" als neue Schlüsselwörter zu vermerken. Außerdem wurde das asyncio-Modul in vielfacher Hinsicht erweitert und optimiert.
Alle Änderungen sind in dem Dokument "What’s New In Python 3.7" verzeichnet.
Bei einer Überprüfung des Quellcodes fällt das Python-Projekt durch besonders niedrige Fehlerraten auf.