Python 3.15 вышел: UTF-8 по умолчанию, JIT и lazy imports
В Python 3.15 ускорили экспериментальный JIT-компилятор, включили UTF-8 по умолчанию и добавили sentinel, frozendict и отложенный импорт.
9 октября 2026 года состоялся релиз стабильной версии Python 3.15. В новой ветке разработчики сосредоточились на ускорении запуска и выполнения программ, расширении стандартной библиотеки и развитии инструментов типизации. Среди заметных нововведений — встроенные типы sentinel и frozendict, кодировка UTF-8 по умолчанию и явный механизм отложенного импорта.
По данным команды проекта, выпуск включает изменения, реализованные в 5643 коммитах при участии 1012 разработчиков и контрибьюторов. Python 3.15 стал следующим мажорным релизом после версии 3.14, которая вышла годом ранее.
JIT стал быстрее, а запуск программ — гибче
Экспериментальный JIT-компилятор Python сохраняет статус технологии, находящейся в разработке, однако в версии 3.15 его производительность заметно выросла. В Linux на архитектуре x86-64 ожидаемый средний прирост относительно стандартного интерпретатора составляет 7–8% по геометрическому среднему.
На macOS с архитектурой AArch64 JIT, как сообщается, работает на 11–12% быстрее интерпретатора с поддержкой tail-calling. Кроме того, в языке появился явный механизм lazy imports — отложенного импорта модулей. Он позволяет не загружать зависимости до момента, когда они действительно понадобятся, и тем самым может сократить время запуска скриптов.
В Python 3.15 также появилась распаковка в генераторах и comprehensions. Кодировка UTF-8 теперь используется по умолчанию. Среди новых возможностей языка и встроенных типов — sentinel и неизменяемый словарь frozendict. Для инициализации пакетов добавлены файлы конфигурации.
Стандартная библиотека и типизация
Стандартная библиотека получила специализированный пакет для организации инструментов профилирования. В релиз также вошёл Tachyon — высокочастотный статистический сэмплирующий профилировщик.
В системе типизации появились TypedDict с типизированными дополнительными элементами, аннотирование форм типов с помощью TypeForm и поддержка непересекающихся базовых классов. Для разработчиков расширений добавлен новый C API PyBytesWriter, предназначенный для создания объектов bytes в Python.
Отдельно команда проекта отмечает стабильный ABI для сборок с поддержкой free-threading и связанный с ним C API. В процессе сборки указатели на кадры, или frame pointers, теперь включены по умолчанию — это должно упростить системный мониторинг и отладку.
Изменения в официальных сборках
Официальные 64-битные бинарные файлы Python для Windows теперь используют интерпретатор с поддержкой tail-calling. Сборки для macOS по умолчанию включают поддержку free-threading. Эти изменения рассчитаны на более широкое использование новых возможностей выполнения и наблюдения за программами.
Интерактивный обзор новинок
К релизу разработчик Barry Warsaw подготовил текстовый квест, посвящённый возможностям Python 3.15. Игрок начинает в «Фойе запуска» внутри интерпретатора и должен добраться до «Врат релиза», решив восемнадцать головоломок.
Каждая задача основана на реальной функции Python 3.15: для прохождения нужно писать и запускать код в новом интерпретаторе. В заданиях, связанных с проверкой типов, используется утилита pyrefly, добавленная в зависимости специально для этой игры. Запустить квест можно командой uvx -python 3.15 whatsnewt.
Поддержка Python 3.15 запланирована на полтора года. После этого ещё три с половиной года для ветки будут выпускаться исправления, устраняющие уязвимости.
Сообщить о проблеме в публикации
Обращение принято Обращение будет рассмотрено. По результатам проверки публикация может быть исправлена, дополнена, временно скрыта или удалена.
Читайте новые материалы журнала — свежие сюжеты каждый день.
На главную