Если я хочу иметь тип, который может быть несколькими возможными типами, Union
s, похоже, то, как я это представляю:
U = Union[int, str]
U
может быть int
или str
.
Я заметил, что TypeVar
s допускает необязательные аргументы var-arg, которые, похоже, делают то же самое:
T = TypeVar("T", int, str)
И T
, и U
, похоже, могут принимать только типы str
и int
.
В чем разница между этими двумя способами и когда следует отдавать предпочтение каждому из них?