Python 3.12. Что нового ?
Буквально час тому назад состоялся релиз новой версии Python3.12.0 (финальный релиз) !!!
Основные новые возможности Python 3.12.0 по сравнении с версией Python 3.11
Новые фичи
Более гибкий разбор f-строк(More flexible f-string parsing ) , позволяющий множество вещей, ранее запрещенных (PEP 701).
Поддержка протоколов буфера в коде Python (PEP 688).
Новый API для отладки/профилирования (PEP 669).
Поддержка изолированных подинтерпретаторов(subinterpreters) с отдельными GIL (PEP 684).
Еще более улучшенные сообщения об ошибках.Теперь большинство исключений, вызванных, возможно, опечатками, предлагают пользователю рекомендации.
Поддержка профилировщика Linux perf для отображения имен функций Python в трассировках.
Множество крупных и мелких улучшений производительности(например, PEP 709 и поддержка бинарного оптимизатора BOLT), обеспечивающих ожидаемое общее улучшение производительности на уровне 5%.
Аннотации типов
- (PEP 695).
Новый декоратор override для методов (PEP 698).
Устаревшие функции и изменения:
Убраны устаревшие элементы wstr и wstr_length из реализации C объектов unicode, согласно PEP 623.
В модуле unittest было удалено множество давно устаревших методов и классов (они были устаревшими с версии Python 3.1 или 3.2).
Убраны устаревшие модули smtpd и distutils (смотрите PEP 594 и PEP 632). Пакет setuptools продолжает предоставлять модуль distutils.
Убраны ряд других старых, испорченных и устаревших функций, классов и методов.
Неверные экранирующие последовательности обратной косой черты в строках теперь вызывают предупреждение SyntaxWarning, а не DeprecationWarning, что делает их более заметными. В будущем они станут синтаксической ошибкой.
Внутреннее представление целых чисел было изменено в целях подготовки к улучшению производительности. Это не должно повлиять на большинство пользователей, так как это внутренний деталь, но это может вызвать проблемы для кода, созданного с использованием Cython.
Заключение
Среди основных нововведений стоит отметить:
более гибкий разбор f-строк
поддержку протоколов буфера
новый API для отладки и профилирования,
поддержку изолированных подинтерпретаторов с отдельными блокировками интерпретатора.
Эти изменения позволят нам писать более мощные и производительные программы на Python.
Кроме того, Python 3.12.0 предлагает еще более улучшенные сообщения об ошибках, что упростит отладку и разработку, а также множество улучшений производительности, снижающих нагрузку на приложения. Важно отметить также изменения в аннотациях типов, что делает работу с типами более ясной и удобной. Среди устаревших элементов и изменений выделены устранение устаревших функций и модулей, что позволяет поддерживать язык Python актуальным и чистым.
Python 3.12.0 - это еще один шаг вперед в развитии этого мощного и гибкого языка программирования, и мы с нетерпением ждем, какие проекты и возможности он принесет нам в ближайшем будущем. Давайте начнем использовать этот релиз и создавать потрясающие программы!