← Назад к курсу
Что нового в Python 3.14
Версия Python 3.14, выпущенная 7 октября 2025 года, принесла ряд значимых изменений, связанных с производительностью, безопасностью и удобством разработки. Основные нововведения сгруппированы в таблице ниже.
| Категория | Основные изменения | Ключевые PEP / Документы |
|---|---|---|
| 🚀 Производительность и многопоточность | Поддержка многопоточности без GIL (экспериментальная). Новый тип интерпретатора (ускорение до 30% для Clang 19). | PEP 779 |
| 🔧 Синтаксис и безопасность | Шаблонные строки (t-строки). Обработка исключений без скобок. | PEP 750, PEP 758 |
| 📝 Типизация и отладка | Отложенное вычисление аннотаций типов. Интерфейс для отладки работающих процессов без остановки. | PEP 649, PEP 749, PEP 768 |
| 📚 Стандартная библиотека | Новый модуль concurrent.interpreters. Модуль compression.zstd. Поддержка UUID версий 6-8. | PEP 734, PEP 784 |
🚀 Ключевые изменения для разработчиков
Некоторые изменения заслуживают особого внимания из-за их практической значимости.
- Многопоточность без GIL (PEP 779): Это экспериментальная возможность (free-threaded build), которую необходимо специально включить при сборке. Она позволяет потокам выполняться параллельно на разных ядрах процессора, что может значительно ускорить CPU-интенсивные задачи. Важно помнить, что отключение GIL может снизить производительность однопоточных скриптов примерно на 10%.
- Шаблонные строки (t-строки, PEP 750): t-строка возвращает не готовую строку, а объект Template. Это позволяет раздельно обрабатывать статический текст и подставляемые значения. Эта функциональность полезна для безопасного экранирования пользовательского ввода (например, в HTML или SQL-запросах), создания DSL или пользовательских шаблонизаторов.
- Отложенное вычисление аннотаций (PEP 649/749): Аннотации типов теперь вычисляются не при определении функции, а только при первом обращении к .__annotations__. Это повышает производительность при запуске и решает проблему циклических ссылок, избавляя от необходимости оборачивать типы в кавычки (прямые ссылки). Для работы с аннотациями добавлен модуль annotationlib.
- Модуль concurrent.interpreters (PEP 734): Этот модуль позволяет создавать и управлять полностью изолированными интерпретаторами Python в рамках одного процесса. Это альтернатива multiprocessing с меньшими накладными расходами и threading с гарантированной изоляцией памяти. Такая модель подходит для реализации параллельных вычислений или архитектур вроде акторской модели.
💡 На что обратить внимание при обновлении
Прежде чем обновляться до Python 3.14, учтите следующие важные моменты:
- Совместимость многопоточности: Если вы используете расширения на C (C-extension), убедитесь, что они совместимы со сборкой без GIL. Не все сторонние библиотеки могут быть готовы к этой модели параллелизма.
- Контрольные точки в коде: Новый интерфейс отладки (PEP 768) позволяет безопасно подключаться к работающему процессу, но он использует "безопасные точки выполнения" (safe execution points). Это значит, что отладчик может подключиться не мгновенно, а только когда интерпретатор достигнет одной из таких точек.
- Изменения в finally: Использование return, break или continue для выхода из блока finally теперь вызывает SyntaxWarning (PEP 765). Проверьте, нет ли в вашем коде подобных конструкций, чтобы избежать неожиданного поведения и предупреждений.
- JIT-компилятор: Он встроен в официальные сборки для macOS и Windows, но остается экспериментальной функцией и по умолчанию отключен. Не стоит полагаться на него в рабочих проектах.
Если вы планируете обновить существующий проект, может быть полезно проверить отдельные аспекты кода. Например, можете рассказать, используете ли вы в проекте многопоточность, активно ли работаете с аннотациями типов или сторонними C-расширениями? Это поможет оценить возможные риски при переходе.