Дата выпуска: Oct. 5, 2020
Python версии 3.9
На заметку
С полным списком изменений в версии вы можете ознакомиться на странице «Python 3.9» (англ.).

Внимание
Версия Python 3.9 последняя, в которой сохраняются специальные слои для обратной совместимости с Python 2 (они поднимают DeprecationWarning ).

Кое-что из нового:
  • Встроенные типы теперь можно использовать в разметке типов без импорта из typing. Например: list[str] вместо List[str].
  • Добавлена поддержка операторов | (слияние) и |= (обновление) для словарей.
  • Добавлены методы строк для работы с афиксами: str.removeprefix(prefix), str.removesuffix(suffix).
  • Добавлена os.pidfd_open(), позволяющая на Linux 5.3+ управлять процессами бег гонок и сигналов.
  • Улучшения по PEP 573 для быстрого доступа к состоянию модулей для методов из типов из расширений на Си.
  • Использование нового, более гибкого РВГ-парсера.
  • Новый модуль zoneinfo включает база временных зон IANA.
  • Новый модуль graphlib предлагает возможности для топологической сортировки графов.
  • __file__ модуля __main__ теперь содержит не относительный, а абсолютный путь.
  • Рабочие ProcessPoolExecutor теперь рождаются по требованию, только когда нет свободных рабочих для повторного использования.
  • В модуль math добавлены lcm() и nextafter(), ulp() для работы с числами с плавающей запятой.
  • Добавлена random.Random.randbytes для генерирования случайного набора байтов.


Оптимизация и ускорение



  • Ускорение некоторых встроенных типов (range, tuple, set, frozenset, list, dict) за счёт PEP 590.
  • Некоторые модули (_abc, audioop, _bz2, _codecs, _contextvars, _crypt, _functools, _json, _locale, math, operator, resource, time, _weakref) теперь используют многофазную инициализацию по PEP 489.
  • Оптимизирован механизм обработки сигналов для приложений с нитями. Только основная нить основного интерпретатора может обработать сигнал.
  • Декодирование коротких ASCII строк кодеками UTF-8 и ASCII ускорено на 15%.

Предложения по улучшению (PEP)
Номер Название Тип Состояние
432 Упрощение последовательности запуска CPython С Отозв.
467 Мелкие улучшения API для двоичных последовательностей С Отл.
534 Дистрибуция подмножества стандартной библиотеки С Отл.
584 Операторы «+» и «-» для встроенного класса словарей С Фин.
585 Соглашения для удобства пользования аннотациями типов С Утв.
593 Гибкие аннотации для функций и переменных С Утв.
596 График выпуска Python 3.9 И Действ.
598 Поэтапные нововведения И Отозв.
602 Годичный цикл для выпусков Python И Утв.
603 Добавление типа frozenmap в collections С Черн.
605 Выделенный поток для готовящихся выпусков СPython И Откл.
606 Версия совместимости для Python С Откл.
607 Сокращение задержек нововведений в CPython И Фин.
608 Согласованные выпуски Python С Откл.
614 Грамматические послабления для декораторов С Фин.
615 Поддержка БД временных зон IANA в стандартной библиотеке С Утв.
616 Строковые методы для устранения префиксов и суффиксов С Утв.
617 Новый РВГ парсер для CPython С Утв.
Нет обсуждений для отображения.

Если у вас есть, что сказать, можете представиться и исправить ситуацию.

На заметку
Зарегистрированные пользователи могут публиковать свои Статьи.