What’s new in Python 3.14

What’s new in Python 3.14

Python 3.14 - это последняя стабильная версия языка программирования Python, содержащая совокупность изменений в самом языке, его реализации и стандартной библиотеке. Самые значительные изменения включают шаблонные строковые литералы, отложенное вычисление аннотаций и поддержку суб-интерпретаторов в стандартной библиотеке.

Улучшения:

- PEP 649 и PEP 749: Отложенное вычисление аннотаций

- PEP 734: Множественные интерпретаторы в стандартной библиотеке
- PEP 750: Шаблонные строки
- PEP 758: Разрешение использования выражений except и except* без скобок
- PEP 765: Управление потоком выполнения в блоках finally
- PEP 768: Безопасный внешний интерфейс отладчика для CPython
- Новый тип интерпретатора
- Улучшения режима свободных потоков (free-threaded mode)
- Улучшенные сообщения об ошибках
- Инкрементальная сборка мусора

PEP 649 & 749: Отложенное вычисление аннотаций

Аннотации больше не вычисляются при создании. Вместо этого они сохраняются в специальных функциях и вычисляются только при необходимости.

python from annotationlib import get_annotations, Format def func(arg: Undefined): pass # Разные форматы получения аннотаций get_annotations(func, format=Format.STRING) # {'arg': 'Undefined'}

PEP 734: Множественные интерпретаторы

Новый модуль concurrent.interpreters позволяет запускать несколько изолированных интерпретаторов в одном процессе.

Преимущества:

- Новая модель конкурентности

- Истинная многопоточность без GIL

- Эффективнее multiprocessing

PEP 750: Шаблонные строки

Новый префикс t для шаблонных строк вместо немедленного форматирования.

python variety = 'Stilton' template = t'Try some {variety} cheese!' # Возвращает Template объект, а не строку

PEP 768: Безопасный интерфейс отладки

Нулевые накладные расходы для подключения отладчиков к работающим процессам.

python import sys sys.remote_exec(1234, 'debug_script.py') # Выполняет код в процессе 1234

Новый тип интерпретатора

Интерпретатор с хвостовыми вызовами между функциями opcode вместо большого switch-блока. Ускорение 3-5% на тестах pyperformance.

Улучшения свободнопоточного режима

- Завершена реализация PEP 703
- Включен специализирующий адаптивный интерпретатор
- Штраф производительности снижен до 5-10%

Подсказки по опечаткам

python whille True: # SyntaxError: Did you mean 'while'?

Улучшенные диагностические сообщения

- Конкретные ошибки для elif после else
- Лучшие сообщения для несовместимых префиксов строк
- Улучшенные сообщения для нехэшируемых типов

PEP 784: Поддержка Zstandard

Новый модуль compression.zstd для эффективного сжатия.

python from compression import zstd compressed = zstd.compress(data)

Улучшения asyncio

Новые CLI команды для интроспекции:

- `python -m asyncio ps PID` - информация о задачах

- `python -m asyncio pstree PID` - дерево вызовов

Больше в моем телеграмм канале.

1
Начать дискуссию