Версия Python 3.12 будет поддерживаться следующие полтора года, а потом ещё три с половиной года разработчики будут публиковать для неё обновления безопасности. Кроме того, уже запустили тестовую ветку Python 3.13.
Что нового?
В версии 3.12 значительно улучшили работу f‑строк и сделали их более гибкими. Теперь внутри них можно использовать любые конструкции, поддерживаемые в Python. К примеру, обратные слеши, комментарии и многострочные выражения больше не приводят к возникновению ошибок. Ещё внутри строки можно использовать те же кавычки, что и для обрамления самой строки.
Информация об ошибках стала более информативной, и теперь в ней уделяется внимание и опечаткам. Python не просто указывает на проблемное место в коде, а предлагает варианты для исправления. Кроме того, если забыть подключить модуль или библиотеку, то система подскажет, как это можно сделать.
Типы обобщённых классов и функций можно аннотировать более компактным способом. Это должно сэкономить время разработчикам и повысить общую читаемость кода.
Производительность
В выпуске Python 3.12 удалось добиться прироста производительности в размере 5%. Показатели маленькие, но команда проекта продолжает работать над этим. В этом обновлении ускорить Python получилось благодаря добавлению поддержки бинарного оптимизатора BOLT. Вместе с этим ускорили работу с регулярными выражениями и другими встроенными функциями.
Другие нововведения:
- в рамках улучшения безопасности разработчики перешли на формально верифицированные реализации алгоритмов SHA1, SHA3, SHA2-384, SHA2-512 и MD5 в hashlib;
- расширена поддержка Windows в модуле os;
- в CPython появилась поддержка защиты от переполнения стека;
- удалены устаревшие и неактуальные модули и встроенные библиотеки.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!