В новой версии разработчики языка добавили параметризованные диспетчеры контекста. Они позволяют форматировать длинные коллекции диспетчеров контекста в несколько строк. Ранее это можно было реализовать через import выражения. Теперь доступен следующий синтаксис:
Сообщения об ошибках стали умнее. Улучшили SyntaxErrors, IndentationErrors, AttributeErrors и NameErrors. Они выводят более точное описание проблемы. Например, в прошлых версиях Python SyntaxError для следующего кода возникло бы такое сообщение об ошибке:
А в версии 3.10 интерпретатор выдаёт такую ошибку:
Дебагер стал более точным и надёжным. Стандарт PEP 626 добавил в Python номера строк для отладки, профилирования и мониторящих инструментов.
PEP 634 привнёс структурное соответствие шаблонов. Это позволяет вытаскивать информацию из сложных типов данных и выполнять действия для определённых форматов. Синтаксис состоит из match/case-выражения:
PEP 604 добавил новый оператор — объединение типов. Он используется для выражений «либо тип X, либо Y» и заменяет typing.Union. Например, ниже представлены старая и новая версии:
PEP 613 ввёл TypeAlias. Он позволяет объявлять псевдонимы для типов более явно:
Подробное описание всех изменений можно прочитать на официальном сайте Python.
Вот как на это отреагировали пользователи Reddit:
«Оператор объединения типов — отвал башки».
«Я думал, что выйдет Python 4. Теперь, получается, нужно ждать ещё несколько лет».
«А Я ВСЁ ЕЩЁ УЧУ PYTHON 3.9!!!»