← Назад к курсу

Что нового в 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, учтите следующие важные моменты:

  1. Совместимость многопоточности: Если вы используете расширения на C (C-extension), убедитесь, что они совместимы со сборкой без GIL. Не все сторонние библиотеки могут быть готовы к этой модели параллелизма.
  2. Контрольные точки в коде: Новый интерфейс отладки (PEP 768) позволяет безопасно подключаться к работающему процессу, но он использует "безопасные точки выполнения" (safe execution points). Это значит, что отладчик может подключиться не мгновенно, а только когда интерпретатор достигнет одной из таких точек.
  3. Изменения в finally: Использование return, break или continue для выхода из блока finally теперь вызывает SyntaxWarning (PEP 765). Проверьте, нет ли в вашем коде подобных конструкций, чтобы избежать неожиданного поведения и предупреждений.
  4. JIT-компилятор: Он встроен в официальные сборки для macOS и Windows, но остается экспериментальной функцией и по умолчанию отключен. Не стоит полагаться на него в рабочих проектах.

Если вы планируете обновить существующий проект, может быть полезно проверить отдельные аспекты кода. Например, можете рассказать, используете ли вы в проекте многопоточность, активно ли работаете с аннотациями типов или сторонними C-расширениями? Это поможет оценить возможные риски при переходе.