Фонд Python объявил о выходе стабильной версии Python 3.15.0. Новый мажорный релиз по сравнению с Python 3.14 включает 5 643 коммита от 1 012 участников и приносит заметные изменения в интерпретаторе, системе типов, стандартной библиотеке и C API.
Интерпретатор и производительность
Среди ключевых новшеств:
- PEP 661 – новый встроенный тип
sentinelдля явных «уникальных маркеров». - PEP 686 – теперь по умолчанию используется кодировка UTF‑8, что снижает количество сюрпризов при работе с текстовыми файлами.
- PEP 798 – более гибкий unpacking в comprehensions.
- PEP 810 – явные lazy‑импорты для ускорения старта приложений.
- PEP 814 – новый неизменяемый встроенный тип
frozendict. - PEP 829 – файлы конфигурации старта пакетов для централизованной настройки крупных проектов.
- Существенно обновлён экспериментальный JIT‑компилятор: геометрическое среднее ускорение порядка 7–8% на x86‑64 Linux относительно стандартного интерпретатора и 11–12% на AArch64 macOS по сравнению с tail‑calling‑интерпретатором.
Также улучшены сообщения об ошибках – они стали понятнее и информативнее.
Стандартная библиотека, typing и C API
В стандартной библиотеке по PEP 799 появился Tachyon – высокочастотный статистический профилировщик и единое место для инструментов профилирования Python.
Система typing получила ряд дополнений:
- PEP 728 –
TypedDictс типизированными дополнительными полями. - PEP 747 – аннотирование форм типов с помощью
TypeForm. - PEP 800 – disjoint bases в системе типов для более точного статического анализа.
Для разработчиков C‑расширений и встраиваемых решений:
- PEP 782 – новый C API
PyBytesWriterдля удобного создания объектовbytes. - PEP 788 – защита от проблем на этапе финализации в C API.
- PEP 803, 820, 793 – стабильный ABI для free‑threaded‑сборок и сопутствующие изменения C API.
- PEP 831 – frame‑указатели включены по умолчанию, что улучшает системное профилирование и наблюдаемость.
В дистрибутивах тоже есть изменения: официальные 64‑битные Windows‑бинарники теперь используют tail‑calling‑интерпретатор, а macOS‑сборки по умолчанию устанавливаются с поддержкой free‑threading.
Предупреждение для macOS и игра “whatsnewt”
Для пользователей macOS 27.0 есть важное предупреждение: IDLE и другие GUI‑приложения на базе модуля tkinter могут «подвисать» при вызове пунктов меню, открывающих диалоги (например, About IDLE, Settings, Open Module). В результате появляется «крутящийся шарик» и требуется принудительное завершение. Причина – изменение поведения macOS 27.0, затрагивающее все текущие версии Tk.
Если вы зависите от Tk‑приложений под macOS, имеет смысл отложить обновление до macOS 27.0 или тщательно протестировать свой рабочий процесс. За развитием ситуации можно следить в issue #158053.
В честь выхода 3.15 Barry Warsaw подготовил небольшой подарок – TUI‑игру “whatsnewt”, которая в формате текстового квеста проводит по нововведениям Python 3.15. Вы «просыпаетесь» в Startup Foyer внутри интерпретатора и проходите 18 головоломок, каждая из которых основана на реальной возможности 3.15 и требует действительно писать и запускать код. Для некоторых задач нужен type checker; ответы проверяются с помощью pyrefly.
Самый простой способ запустить игру:
```bash
uvx --python 3.15 whatsnewt
```
Полный обзор изменений доступен в официальной статье «What’s new in Python 3.15» и в подробном changelog; ошибки можно сообщать через трекер GitHub проекта CPython.
Источник: Python Software Foundation, LWN.net










