Выходит новая стабильная версия Python 3.12, и вот ее новые возможности.

Логотип Python

Python — это язык программирования высокого уровня.

После года разработки Анонсирован выход стабильной версии а также начало фазы альфа-тестирования языка программирования Python 3.12 и Python 3.13 (соответственно). Упоминается, что эта новая ветка Python 3.12 будет поддерживаться в течение полутора лет, после чего еще в течение трех с половиной лет будут генерироваться исправления для устранения уязвимостей.

Представленная новая версия Python 3.12 содержит улучшения в гибкость анализа f-строки. Теперь с этим улучшением многие ограничения можно оставить в стороне, поскольку, например, теперь вы можете содержать любое допустимое выражение в Python, включая многострочные выражения, комментарии, обратную косую черту и escape-последовательности Unicode. Кроме того, внутренние строки теперь позволяют повторно использовать одни и те же кавычки, т. е. теперь двойные кавычки можно повторно использовать внутри. без необходимости перехода на одинарные кавычки.



Например:



f"""{f'''{f'{f"{1+1}"}'}'''}"""

Теперь можно вкладывать произвольно:

f"{f"{f"{f"{f"{f"{1+1}"}"}"}"}"}"

Еще одно из отличительных изменений — это поддержка изолированных субинтерпретаторов и отдельных глобальных блокировок, которые повышают эффективность использования ресурсов в многоядерных системах, поскольку для разных интерпретаторов внутри процесса CPython позволяет одновременно запускать несколько интерпретаторов в процессе. В настоящее время эта функция доступна только через C-API (поддержка Python API появится в следующей основной ветке).



Помимо этого также подчеркивается, чтоПовышена информативность сообщений об ошибках. расширен диапазон исключений и даны рекомендации по устранению опечаток. Например, теперь отображаются предложения по импорту забытых модулей стандартной библиотеки и предложения по добавлению префикса «self».

Добавлена ​​возможность использовать протокол буфера в коде Python. Классы, предоставляющие метод «__buffer__()», теперь можно использовать как типы, которые работают непосредственно с двоичными данными в памяти.

Модуль sys.monitoring предлагается для отладки и профилирования, позволяя вам отслеживать события в CPython, такие как вызовы, возвраты функций, выполнение произвольных строк кода, исключения и переходы с минимальными накладными расходами.



В интерпретаторе реализована поддержка подсистемы производительности ядра Linux., что позволяет определять имена функций Python при профилировании с помощью утилиты производительности (ранее в трассировках определялись только имена функций C).

Что касается улучшения производительности, упоминается, что оптимизация продолжается, с которым Общий прирост производительности оценивается в 5%., это тоже было добавлено экспериментальная поддержка бинарного оптимизатора BOLT в процесс сборки, увеличив производительность на 1-5%, при этом производительность пакета asyncio значительно улучшилась (некоторые тесты показывают ускорение на 75%).



Реализовано встроенное расширение списков, что ускоряет работу со списками до двух раз (для кода, активно использующего списки, тестирование показало общий прирост производительности на 11%).

Чтобы повысить безопасность, встроенные реализации Алгоритмы SHA1, SHA3, SHA2-384, SHA2-512 и MD5 в hashlib заменены. с формально проверенными опциями из проекта HACL* (встроенные реализации используются только в том случае, если OpenSSL недоступен).

Из другие изменения которые выделяются:

  • Модуль имеет расширенную поддержку Windows.
  • Python реализует защиту от переполнения стека.

    Ускорено создание класса asyncio.Task.
  • Размер объектов Unicode уменьшен с 8 до 16 байт.
  • Ускорена работа с регулярными выражениями re.sub(), re.subn() и re.Pattern.
  • Выполнение проверок isinstance() для некоторых протоколов было ускорено от 2 до 20 раз.
  • Значительно (в некоторых тестах до 64%) ускорены функции tokenize.tokenize() и tokenize.generate_tokens().
  • Загрузка атрибутов и вызов метода super() были ускорены.
  • Для универсальных классов и функций был предложен новый, более компактный синтаксис аннотаций типов.
  • Модуль веб-браузера больше не поддерживает старые браузеры, включая Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, Firebird и Firefox до версии 36.
  • В рамках подготовки к будущим оптимизациям внутреннее представление целых чисел было изменено.

И последнее, но не менее важное, как уже упоминалось, началось альфа-тестирование Python 3.13, в котором появился режим компиляции. CPython без глобальной блокировки интерпретатора (GIL, глобальная блокировка интерпретатора).

Филиал Python 3.13 будет находиться в стадии альфа-версии семь месяцев. в течение которого будут добавляться новые функции и исправляться ошибки согласно новому графику разработки, работа над новой веткой начинается за пять месяцев до выпуска предыдущей ветки и к моменту выхода следующей версии на стадию тестирования альфа.

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

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




2023-10-18T01:22:16
новости