В Python 3.12 приняли PEP 695 — Type Parameter Syntax, который добавляет новый синтаксис для дженерик классов, функций и алиасов для типов
Обычно, функция принимает на вход значение, а на выходе отдаёт значение такого же типа. Так вот теперь в 3.12 не нужно отдельно писать typing.TypeVar и указывать одно и то же имя переменной (1 скриншот).
Достаточно будет просто задекларировать намерение использовать переменную типа T и аннотировать все связанные аргументы и возвращаемые значения сразу при определении функции.
Кроме того, тайп-алиасы с переменными типов тоже стало писать легче (2 скриншот), ведь отпала необходимость явно определять TypeVar. В языке появляется новое «мягкое» ключевое слово type, которое ведёт себя по-разному в зависимости от контекста (как async).
Кому интересно, можно подробнее почитать доки, там ещё много интересных фишек и тонкостей.
#новости