Python 3.11
Дата выпуска: 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 | Спецификатор формата для нуля со знаком | С |
Фин. |
На заметку
Зарегистрированные пользователи могут получать еженедельный дайджест обновлений на сайте.