Найти тему
Infostart.ru - Инфостарт.

Язык программирования Python получил масштабное обновление

Оглавление

В официальном блоге Python представлена последняя стабильная версия языка под номером 3.10.0. Из новинок – улучшенное отображение ошибок, поддержка структурного сопоставления и более строгого итерирования.

Ключевые нововведения

Программисты Python получили возможность применять структурное сопоставление шаблонов, при помощи которого можно сравнивать переменные с одним из наборов возможных значений. Эта конструкция похожа на switch/case, однако лучше справляется со статической проверкой типов.

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

Улучшена работа с оператором with. Новая версия языка позволяет применять круглые скобки для разделения определения коллекции контекстных менеджеров на несколько строк. В самой последней строке разрешается не убирать запятую.

При создании шаблона стало возможным использовать имя класса с указанием аргументов. Этот метод напоминает конструкторы в иных языках программирования и нужен для записи атрибутов в поля класса.

Прочие изменения

  • В функцию zip() добавлен необязательный флаг strict, при помощи которого можно отслеживать одинаковую длину итерируемых объектов.
  • При работе с целыми числами стал доступен метод метод bit_count(), возвращающий количество единиц в двоичном представлении числа.
  • Модуль typing получил новый оператор Concatenate и переменную ParamSpec. Они необходимы для передачи дополнительных данных для проверки типов при помощи Callable.
  • Ускорена работы конструкторов str(), bytes() и bytearray() на 30-40%.
  • Добавлены новые встроенные асинхронные функции aiter() и anext(), аналогичные функциям iter() и next().
  • Вместо старого парсера будет использоваться PEG.
  • Больше не поддерживаются псевдонимы для абстрактных базовых классов из модуля collections.
  • Модули hashlib и ssl получили возможность использовать технологию OpenSSL 3.0.0 вместо устаревшей OpenSSL 1.1.1, которая больше не поддерживается в Python 3.10.0.
  • Для сборки CPython теперь требуется OpenSSL 1.1.1 или более свежие версии.

Следующая версия Python, уже находящаяся в разработке – 3.11. Она будет доступна для альфа-тестирования в течение семи месяцев, после чего перейдет в состояние бета-теста, где еще пробудет не менее трех месяцев.

Комментарии на Infostart.ru