Python 3.7

Nowe funkcje:

Funkcja

Status

PEP 538

Wymuszanie starszej lokalizacji C na lokalizację opartą na UTF-8

PEP 539

Nowe C-API dla przechowywania danych lokalnych wątku w CPython

PEP 540

Tryb UTF-8

PEP 552

Deterministyczne pyc

PEP 553

Wbudowana breakpoint()

PEP 557

Klasy danych

PEP 560

Podstawowa obsługa modułu typing i typów generycznych

PEP 562

Modułowe __getattr__ i __dir__

Częściowe

PEP 563

Odłożona ewaluacja adnotacji

PEP 564

Funkcje czasu z rozdzielczością nanosekundową

Częściowe [1]

PEP 565

Wyświetlanie DeprecationWarning w __main__

PEP 567

Zmienne kontekstowe

Inne zmiany w języku:

async i await są teraz zarezerwowanymi słowami kluczowymi

Ukończone

Obiekty dict muszą zachowywać kolejność wstawiania

Do funkcji można teraz przekazać więcej niż 255 argumentów; funkcja może teraz mieć więcej niż 255 parametrów

bytes.fromhex() i bytearray.fromhex() ignorują teraz wszystkie białe znaki ASCII, a nie tylko spacje

str, bytes i bytearray uzyskały obsługę nowej metody isascii(), która może być użyta do sprawdzenia, czy napis lub bajty zawierają wyłącznie znaki ASCII

ImportError wyświetla teraz nazwę modułu i ścieżkę __file__ modułu, gdy from ... import ... zawiedzie

Importy cykliczne obejmujące importy bezwzględne z powiązaniem pod-modułu z nazwą są teraz obsługiwane

object.__format__(x, '') jest teraz równoważne str(x) zamiast format(str(self), '')

Aby lepiej obsługiwać dynamiczne tworzenie śladów stosu, types.TracebackType można teraz tworzyć z poziomu kodu Python, a atrybut tb_next w śladach wywołań jest teraz zapisywalny

Podczas używania przełącznika -m, sys.path[0] jest teraz natychmiast rozwijany do pełnej ścieżki katalogu początkowego, zamiast pozostawać pustym katalogiem (co pozwala na importy z bieżącego katalogu roboczego w momencie wystąpienia importu)

Nowa opcja -X importtime lub zmienna środowiskowa PYTHONPROFILEIMPORTTIME może być użyta do pokazania czasu importu każdego modułu

Zmiany w modułach wbudowanych:

asyncio

Zbyt wiele, by wymienić

gc

Nowe funkcje obejmują gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

Dodano math.remainder() w celu implementacji reszty w stylu IEEE 754

re

Szereg usprawnień porządkowych, w tym lepsza obsługa dzielenia na pustych napisach oraz obsługa kopiowania dla skompilowanych wyrażeń i obiektów dopasowania

sys

Dodano sys.breakpointhook(). Dodano sys.get(/set)_coroutine_origin_tracking_depth()

time

Głównie aktualizacje obsługujące rozdzielczość nanosekundową w PEP564, patrz wyżej

Uwagi