假设我有两种类型(其中一种是通用的),如下所示
from typing import Generic, TypeVar
T = TypeVar('T')
class A(Generic[T]): pass
class B: passA和B的结合就像这样
C = A|B或者,在前Python-3.10/佩普604-syntax中:
C = Union[A,B]如何更改C的定义,使C也是通用的?例如,如果一个对象是C[int]类型的,则它是
A[int] (类型参数向下传递)或B (忽略类型参数)发布于 2022-01-05 05:31:37
重读类型文件,我相信我找到了答案:
类型别名可以是泛型的。在这种情况下,它们可以通过两种方式使用: Subscripted别名等效于具有替换类型变量的原始类型,因此类型参数的数量必须与泛型类型别名中的空闲类型变量数量相匹配。未订阅的别名被视为原始类型,可用任何变量替换。
所以,回答我的问题:
C = A[T]|B应该能起作用。而且确实如此!
https://stackoverflow.com/questions/70583230
复制相似问题