Python 3.11 Заметки о выпуске
Дата выпуска: 24 октября 2022
Python 3.11 — крупный релиз, сосредоточенный на производительности, улучшении сообщений об ошибках и удобстве разработки.
Что нового в Python 3.11
Улучшение производительности
Python 3.11 на 10–60% быстрее, чем Python 3.10.
- Новый адаптивный интерпретатор:
- Оптимизирует байткод во время выполнения.
- Более быстрые вызовы функций.
- «Zero-cost» исключения:
- Нет накладных расходов, если исключение не возникает.
- Снижение потребления памяти для фреймов и объектов.
Язык и исключения
-
PEP 654: Группы исключений и
except*:- Обработка нескольких исключений одновременно (важно для async-кода). :contentReference[oaicite:3]{index=3}
-
PEP 678: Дополнительные заметки в исключениях:
- Возможность добавлять контекст к ошибкам.
-
PEP 657: Точное указание места ошибки:
- Traceback показывает конкретные части выражений. :contentReference[oaicite:4]{index=4}
Сообщения об ошибках
- Более подробные и понятные traceback’и.
- Подсказки для распространённых ошибок.
- Улучшенная диагностика.
Типизация
- PEP 673: Тип
Self. - PEP 646: Variadic generics.
- PEP 655: Required / NotRequired в
TypedDict. - PEP 675: Literal string types.
- PEP 681: Data class transforms. :contentReference[oaicite:5]{index=5}
Стандартная библиотека
-
Новый модуль
tomllib:- Нативный парсинг TOML.
-
Улучшения
re:- Поддержка атомарных групп
(?>...). - Ускорение работы.
- Поддержка атомарных групп
-
Обновления множества модулей стандартной библиотеки.
Прочие изменения
- Улучшения отладки (точные номера строк, PEP 626).
- Быстрый старт интерпретатора.
- Подготовка к WebAssembly.
Устаревшие возможности
- Начало удаления устаревших модулей («dead batteries», PEP 594).
- Очистка API и внутренних механизмов.
Руководство по миграции
При переходе с Python 3.10:
- В большинстве случаев код работает без изменений.
- Проверьте предупреждения об устаревании.
- Протестируйте код с async и исключениями.