Python 3.12. Что нового ?

02 Окт 2023 , 541

Буквально час тому назад состоялся релиз новой версии Python3.12.0 (финальный релиз) !!!

Основные новые возможности Python 3.12.0 по сравнении с версией Python 3.11

Новые фичи

  1. Более гибкий разбор f-строк(More flexible f-string parsing ) , позволяющий множество вещей, ранее запрещенных (PEP 701).

  2. Поддержка протоколов буфера в коде Python (PEP 688).

  3. Новый API для отладки/профилирования (PEP 669).

  4. Поддержка изолированных подинтерпретаторов(subinterpreters) с отдельными GIL (PEP 684).

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

  6. Поддержка профилировщика Linux perf для отображения имен функций Python в трассировках.

  7. Множество крупных и мелких улучшений производительности(например, PEP 709 и поддержка бинарного оптимизатора BOLT), обеспечивающих ожидаемое общее улучшение производительности на уровне 5%.

Аннотации типов

  1. Новый синтаксис аннотации типов для обобщенных классов

  2. (PEP 695).
  3. Новый декоратор override для методов (PEP 698).

Устаревшие функции и изменения:

  1. Убраны устаревшие элементы wstr и wstr_length из реализации C объектов unicode, согласно PEP 623.

  2. В модуле unittest было удалено множество давно устаревших методов и классов (они были устаревшими с версии Python 3.1 или 3.2).

  3. Убраны устаревшие модули smtpd и distutils (смотрите PEP 594 и PEP 632). Пакет setuptools продолжает предоставлять модуль distutils.

  4. Убраны ряд других старых, испорченных и устаревших функций, классов и методов.

  5. Неверные экранирующие последовательности обратной косой черты в строках теперь вызывают предупреждение SyntaxWarning, а не DeprecationWarning, что делает их более заметными. В будущем они станут синтаксической ошибкой.

  6. Внутреннее представление целых чисел было изменено в целях подготовки к улучшению производительности. Это не должно повлиять на большинство пользователей, так как это внутренний деталь, но это может вызвать проблемы для кода, созданного с использованием Cython.

Заключение

Среди основных нововведений стоит отметить:

  • более гибкий разбор f-строк

  • поддержку протоколов буфера

  • новый API для отладки и профилирования,

  • поддержку изолированных подинтерпретаторов с отдельными блокировками интерпретатора.

Эти изменения позволят нам писать более мощные и производительные программы на Python.

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

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

comments powered by Disqus

Подписка

Подпишитесь на наш список рассылки, чтобы получать обновления из блога

Рубрики

Теги