Python 3.7: Was ist neu?

28.06.2018

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.

comments powered by Disqus

Artikel der Woche

Loadtests ohne Server

Für Loadtests der eigenen Server bietet sich die Cloud an, denn kurz getaktet lassen sich dort viele Rechnerinstanzen starten, die das eigene Budget nur wenig belasten. Noch flexibler, günstiger und besser skalierbar sind Tests mit einer Serverless-Infrastruktur wie AWS Lambda. Wir führen vor, wie Sie dort mit Serverless Artillery eigene Loadtests starten. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Container

Wie setzen Sie Container ein?

  • Gar nicht
  • Docker standalone
  • Docker mit Kubernetes
  • Docker mit Swarm
  • Docker mit anderem Management
  • LXC/LXD
  • Rocket
  • CRI-O auf Kubernetes
  • Container auf vSphere
  • Andere (siehe Kommentare auf der Ergebnisseite)

Google+

Ausgabe /2018

Microsite