Python 3.7

Новые возможности:

Возможность

Статус

PEP 538

Приведение устаревшей локали C к локали на основе UTF-8

PEP 539

Новый C-API для локального хранилища потока в CPython

PEP 540

Режим UTF-8

PEP 552

Детерминированные pyc

PEP 553

Встроенная breakpoint()

PEP 557

Классы данных (Data Classes)

PEP 560

Базовая поддержка модуля typing и обобщённых типов

PEP 562

__getattr__ и __dir__ для модулей

Частично

PEP 563

Отложенное вычисление аннотаций

PEP 564

Функции времени с наносекундным разрешением

Частично [1]

PEP 565

Показ DeprecationWarning в __main__

PEP 567

Контекстные переменные

Прочие изменения языка:

async и await теперь являются зарезервированными ключевыми словами

Завершено

Объекты dict должны сохранять порядок вставки

Теперь в функцию можно передавать более 255 аргументов; функция теперь может иметь более 255 параметров

bytes.fromhex() и bytearray.fromhex() теперь игнорируют все пробельные символы ASCII, а не только пробелы

str, bytes и bytearray получили поддержку нового метода isascii(), который можно использовать для проверки того, содержит ли строка или байты только символы ASCII

ImportError теперь отображает имя модуля и путь __file__ модуля, когда from ... import ... завершается неудачей

Теперь поддерживаются циклические импорты с абсолютными импортами, привязывающими подмодуль к имени

object.__format__(x, '') теперь эквивалентно str(x), а не format(str(self), '')

Для лучшей поддержки динамического создания трассировок стека types.TracebackType теперь может быть инстанцирован из кода Python, а атрибут tb_next у трассировок теперь доступен для записи

При использовании переключателя -m sys.path[0] теперь сразу разворачивается в полный путь к начальному каталогу, а не остаётся пустым каталогом (что позволяет выполнять импорты из текущего рабочего каталога в момент выполнения импорта)

Новый параметр -X importtime или переменная окружения PYTHONPROFILEIMPORTTIME может использоваться для отображения времени импорта каждого модуля

Изменения во встроенных модулях:

asyncio

Слишком много, чтобы перечислять

gc

Новые возможности включают gc.freeze(), gc.unfreeze(), gc-get_freeze_count

math

Добавлена math.remainder() для реализации остатка в стиле IEEE 754

re

Ряд улучшений, включая лучшую поддержку разбиения по пустым строкам и поддержку копирования для скомпилированных выражений и объектов match

sys

Добавлена sys.breakpointhook(). Добавлены sys.get(/set)_coroutine_origin_tracking_depth()

time

В основном обновления для поддержки наносекундного разрешения в PEP564, см. выше

Примечания