Вышел Python 3.11.0. В два раза быстрее, c детальным описанием ошибок и кучей новых типов
Рассказываем, что изменилось в новом релизе Python и при чем тут его создатель Гвидо ван Россум (спойлер — он вернулся к разработке Python и теперь хочет его сделать самым быстрым языком в мире).
Содержание
Что нового в Python 3.11.0 — основные изменения
- Самое важное изменение: Python 3.11 на 10-60% быстрее, чем Python 3.10 — в среднем разработчики языка зафиксировали ускорение в 1,22 раза на стандартном наборе тестов.
- В Python 3.11.0 включены подробные местоположения ошибок в трассировках. Теперь разработчики увидят точное место ошибки — не строку, а конкретные выражения, а сообщения об ошибках станут понятнее и детальнее.
- В релизе появились группы исключений и синтаксис
except*. Теперь разработчики в своем коде могут отлавливать сразу несколько неродственных исключений одновременно. Для группировки исключений и их совместного вызова появились новые типы исключенийExceptionGroupиBaseExceptionGroup. - Python поддерживает модуль
tomllibв стандартной библиотеке для синтаксического анализа файлов в формате TOML. - В asyncio появились группировки для задач.
- Регулярные выражения теперь поддерживают атомарную группировку
( (?>…))и притяжательные квантификаторы( *+, ++, ?+, {m,n}+).
Читайте также:
С чего начать изучение Python и как написать на нем первый код
Изменения типов
- В Python 3.11.0 появился новый тип
SelfType, который облегчит работу с классами и сделает возврат экземпляра класса более интуитивно понятным. - Добавлен тип
TypeVarTuple, который позволяет использовать вариативные дженерики. С их помощью можно охватывать не один тип, как в предыдущей версии этой концепцииTypeVar, а любое количество типов. - Появился супертип для работы со строками —
LiteralString, который будет включать в себя все строковые литералы, совместимые с ним. Например, вLiteralStringне входят комбинированные строки с типомstrили произвольные символы. - Теперь можно помечать отдельные элементы в типизированных словарях
TypedDictспециальными меткамиRequiredиNotRequiredдля определения обязательных и необязательных полей. - В Python 3.11.0 добавлен декоратор классов, методов и функций
@dataclass_transform. Если разработчик его указывает, то система проверки статистических типов начинает правильно трактовать метаклассы.
Еще несколько изменений
- В релиз добавлена встроенная поддержка WebAssembly — в дальнейшем это позволит упростить запуск Python в среде браузера.
- Разработчики объявили в этом релизе устаревшими модули
uu,cgi,pipes,crypt,aifc,chunk,msilib,telnetlib,audioop,nis,sndhdr,imghdr,nntplib,spwd,xdrlib,cgitb,mailcap,ossaudiodevиsunau, а также функциюPyUnicode_Encode*. Они будут полностью удалены из языка в Python 3.13.
Продолжайте учиться:
На Хекслете есть большая профессия Python-разработчика с нуля — с большим количеством практики, важнейшими фундаментальными знаниями о программировании, разбором необходимых фреймворков и портфолио из нескольких проектов на GitHub
Svet Ivanov
3 года назад
18





.png)
