Вышел Python 3.11

good-penguin.png

26 октября 2022 года было объявлено о выпуске новой версии популярного языка программирования Python 3.11.

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

Основные улучшения заключаются в увеличении производительности интерпретатора CPython на 10–60% (в среднем в 1.25 раз по сравнению с Python 3.10). Этого удалось достичь в первую очередь за счёт оптимизации запуска интерпретатора, а также при помощи ускорения вызовов функций (в частности, за счёт оптимизации внутренней структуры фрейма; ранее фреймы содержали дополнительную информацию об отладке и управлении памятью).

Среди других изменений и улучшений можно отметить следующие:

  • Поддержка групп исключений — возможность создания и обработки нескольких несвязанных исключений одновременно (PEP 654).
  • Более точное указание местоположения ошибок в сообщениях об ошибках (PEP 657).
  • Различные улучшения и добавления в аннотациях типов, в частности, новая аннотация Self, указывающая, что метод возвращает объект данного класса (PEP 673).
  • Новый модуль стандартной библиотеки tomllib для работы с форматом TOML (PEP 680).
  • Множество улучшений в модулях стандартной библиотеки, в частности, asyncio, datetime, enum, functools, inspect, math и других. Например, в модуль math добавлены такие крайне полезные функции, как exp2 (возведение 2 в степень) и cbrt (кубический корень).

Кроме того, продолжена работа по удалению из стандартной библиотеки устаревших или мало используемых функций и модулей. В частности, помечены как устаревшие (для удаления в Python 3.13) следующие модули: pipes, crypt, ossaudiodev и некоторые другие не менее важные. Отметим, что для помеченных к удалению модулей имеются альтернативные реализации, либо их функционал (если он кому-то нужен) распределён среди оставшихся модулей. например, вместо модуля crypt рекомендуется использовать модуль hashlib, а вместо pipes — subprocess.

В целом, в данный релиз вошло более 9500 исправлений и улучшений от множества разработчиков по всему миру. Ответственный за данный выпуск — Pablo Galindo Salgado.

>>> Подробности

©  Linux.org.ru