Python 3.11
Дата выпуска: Oct. 24, 2022
Python версии 3.11
На заметку
Со списком нововведений вы можете ознакомиться на странице «Python 3.11» (англ.).
Кое-что из нового:
- В соответствии с PEP-654 добавлена поддержка порождения и обработки групп исключений.
- Для аннотаций типов теперь доступен тип
Self
— PEP-673. - Добавлен модуль
tomllib
с инструментами для разбора файлов в формате TOML. - Благодаря PEP-657 в трассировках теперь более конкретизировано место в строке, породившие исключение. Эта же информация теперь доступна через C API.
- У BaseException доступен атрибут
__note__
, значение которого видно в трассировках. - В
math
добавленыexp2()
иcbrt()
. - В
operator
добавлена фукнцияcall()
. - В регулярных выражениях теперь поддерживается атомарная группировка
((?>...))
и притяжательные количественные описатели:(*+, ++, ?+, {m,n}+)
. - Улучшения в модуле
sqlite3
. - Алгоритм сортировки Timsort заменён на Powersort.
Внимание
lib2to3
объявлен устаревшим и может не понимать код, начиная с версии +py3.10.Внимание
Устаревний модуль
binhex
удалён.Оптимизация и ускорение
- CPython 3.11 в среднем на 25% быстрее 3.10 (GCC, Ubuntu Linux). В зависимости от сцерания работы ускорение может составлять 10-60%. Сокращено время запуска интерпретатора. Объекты фреймов теперь более легковесны и ленивы. Ожидается, что расход памяти не должен возврасти более чем на 20%.
- Скорость форматирования строк в C-стиле при использовании
%s
,%r
,%a
теперь сравнима с со скоростью для f-строк. - Использование try теперь почти ничего не стоит, когда исключения не было.
- Ускорены вызовы методов, использующих именованные аргументы.
- Уменьшен объем памяти, занимаемый словарями, ключи в которых являются юникод-объектами.
_
Предложения по улучшению (PEP)
Номер | Название | Тип | Состояние |
---|---|---|---|
594 | Изъятие севших батареек из стандартной библиотеки | С |
Фин. |
624 | Устранение API кодировщика Py_UNICODE | С |
Фин. |
646 | Вариативные обобщенные типы | С |
Утв. |
648 | Расширяемые настройки старта интерпретатора | С |
Откл. |
654 | Группы исключений и except* | С |
Утв. |
655 | Пометка отдельных элементов TypedDict обязательными или потенциально пропущенными | С |
Утв. |
657 | Включить в трассировки детальные места ошибок | С |
Фин. |
663 | Улучшение и стандартизация поведения str(), repr(), и format() для Enum | И |
Откл. |
664 | График выпуска Python 3.11 | И |
Действ. |
670 | Преобразовать макросы в функции в C API | С |
Фин. |
673 | Тип Self | С |
Утв. |
675 | Литералы произвольных строк | С |
Утв. |
677 | Синтаксис для вызываемых типов | С |
Откл. |
678 | Снабжение исключений примечаниями | С |
Утв. |
680 | tomllib: поддержка разбора TOML в Стандартной библиотеке | С |
Утв. |
681 | Трансформации классов данных | С |
Утв. |
682 | Спецификатор формата для нуля со знаком | С |
Фин. |
На заметку
Зарегистрированные пользователи могут оценивать Книги, Видео, Статьи и прочее, а также добавлять их в избранное, для упрощения доступа к ним в будущем.