我想创建一个参数化类型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
。我有什么不同的做法
你很接近你需要做
RawOrVariable = Union[T, Variable[T]]
而不是RawOrVariable[T] = Union[T, Variable[T]]
注意,后者不是有效的Python代码
RawOrVariable
变量在运行时没有定义有关更多详细信息,请参见mypy docs on generic type aliases。pep484还简要地给出了第二个示例here中泛型类型别名的示例
相关问题 更多 >
编程相关推荐