аннотируют абсолютно любой возможный тип?
Вообще разное
Ты что-то про дженерики знаешь?
цели разные. typing.Any указывает что перменная может иметь любой тип, т.е. переменная может быть чем угодно, и не ограничевается никакими ограниченями типа а TypeVar позволяет создавать обобщённые типы, который могут юзаться для абстрагирования типов в функциях, классах и т.д
Пытался узнать, статей 10 прочитал. Понял, что это какой-то тип, который может отражать любой тип
+ которому можно присвоить имя
ну ок. def foo(x: Any) -> Any: pass
А зачем тогда typing.NewType?
они оба могут представлять любой тип, но у TypeVar можно более гибко создавать параметизированные типы, а typing.Any просто укахывает на то что перменная может иметь любой тип
для создания новых типов на основе существующих типов
А, то-есть если нет типа, на основе которого мы хотим создать другой, то создаем дженерик (TypeVar("имя типа"))?
Понял, спасибо! Меня смущало именно наличие NewType
Обсуждают сегодня