Python 3.7

Neue Funktionen:

Funktion

Status

PEP 538

Umwandlung der veralteten C-Locale in eine UTF-8-basierte Locale

PEP 539

Eine neue C-API für Thread-Local Storage in CPython

PEP 540

UTF-8-Modus

PEP 552

Deterministische pyc

PEP 553

Eingebautes breakpoint()

PEP 557

Data Classes

PEP 560

Grundlegende Unterstützung für das typing-Modul und generische Typen

PEP 562

Modul-__getattr__ und __dir__

Teilweise

PEP 563

Aufgeschobene Auswertung von Annotationen

PEP 564

Zeitfunktionen mit Nanosekunden-Auflösung

Teilweise [1]

PEP 565

DeprecationWarning in __main__ anzeigen

PEP 567

Kontextvariablen

Weitere Sprachänderungen:

async und await sind nun reservierte Schlüsselwörter

Vollständig

dict-Objekte müssen die Einfügereihenfolge beibehalten

Es können nun mehr als 255 Argumente an eine Funktion übergeben werden; eine Funktion kann nun mehr als 255 Parameter haben

bytes.fromhex() und bytearray.fromhex() ignorieren nun alle ASCII-Leerraumzeichen, nicht nur Leerzeichen

str, bytes und bytearray wurden um die neue Methode isascii() erweitert, mit der geprüft werden kann, ob eine Zeichenkette oder Bytes nur ASCII-Zeichen enthalten

ImportError zeigt nun den Modulnamen und den __file__-Pfad des Moduls an, wenn from ... import ... fehlschlägt

Zirkuläre Importe mit absoluten Importen, die ein Submodul an einen Namen binden, werden nun unterstützt

object.__format__(x, '') entspricht nun str(x) statt format(str(self), '')

Um die dynamische Erstellung von Stack-Traces besser zu unterstützen, kann types.TracebackType nun aus Python-Code instanziiert werden, und das Attribut tb_next von Tracebacks ist nun beschreibbar

Bei Verwendung des Schalters -m wird sys.path[0] nun sofort zum vollständigen Pfad des Startverzeichnisses erweitert, anstatt als leeres Verzeichnis belassen zu werden (was Importe aus dem zum Zeitpunkt des Imports aktuellen Arbeitsverzeichnis erlaubt)

Die neue Option -X importtime oder die Umgebungsvariable PYTHONPROFILEIMPORTTIME kann verwendet werden, um die Zeitmessung jedes Modulimports anzuzeigen

Änderungen an eingebauten Modulen:

asyncio

Zu viele, um sie aufzulisten

gc

Zu den neuen Funktionen gehören gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

math.remainder() wurde hinzugefügt, um den Rest gemäß IEEE 754 zu implementieren

re

Eine Reihe von Aufräumarbeiten, darunter bessere Unterstützung für das Aufteilen an leeren Zeichenketten sowie Kopierunterstützung für kompilierte Ausdrücke und Match-Objekte

sys

sys.breakpointhook() wurde hinzugefügt. sys.get(/set)_coroutine_origin_tracking_depth() wurde hinzugefügt

time

Hauptsächlich Aktualisierungen zur Unterstützung der Nanosekunden-Auflösung in PEP564, siehe oben

Hinweise