Я хотел бы создать параметризованный тип RawOrVariable[T] = Union[T, Variable[T]]
, чтобы
def foo(a: RawOrVariable[str]):
...
def bar(b: RawOrVariable[int]):
...
эквивалентно
def foo(a: Union[str, Variable[str]]):
...
def bar(b: Union[int, Variable[int]]):
...
Есть ли ярлык или мне нужно написать классRawOrVariable
сам? Например, вот так:
@type_check_only
class RawOrVariable:
def __class_getitem__(cls, t):
return Union[t, Variable[t]]
О чем я должен знать?
Обновление
Когда я использую выше RawOrVarialbe
, mypy жалуется: "RawOrVariable" expects no type arguments, but 1 given
,Что я должен делать по-другому?