首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >也是泛型的泛型类型的联合

也是泛型的泛型类型的联合
EN

Stack Overflow用户
提问于 2022-01-04 18:07:11
回答 1查看 539关注 0票数 6

假设我有两种类型(其中一种是通用的),如下所示

代码语言:javascript
复制
from typing import Generic, TypeVar
T = TypeVar('T')
class A(Generic[T]): pass
class B: pass

A和B的结合就像这样

代码语言:javascript
复制
C = A|B

或者,在前Python-3.10/佩普604-syntax中:

代码语言:javascript
复制
C = Union[A,B]

如何更改C的定义,使C也是通用的?例如,如果一个对象是C[int]类型的,则它是

  • 类型A[int] (类型参数向下传递)或
  • 类型B (忽略类型参数)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-05 05:31:37

重读类型文件,我相信我找到了答案:

类型别名可以是泛型的。在这种情况下,它们可以通过两种方式使用: Subscripted别名等效于具有替换类型变量的原始类型,因此类型参数的数量必须与泛型类型别名中的空闲类型变量数量相匹配。未订阅的别名被视为原始类型,可用任何变量替换。

所以,回答我的问题:

代码语言:javascript
复制
C = A[T]|B

应该能起作用。而且确实如此!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70583230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档