В официальном блоге 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. Она будет доступна для альфа-тестирования в течение семи месяцев, после чего перейдет в состояние бета-теста, где еще пробудет не менее трех месяцев.