Python 3.9
Дата выпуска: 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 | С |
Отозв. |
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 | С |
Утв. |
На заметку
Зарегистрированные пользователи могут добавлять Видео.