首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在typing.List<~T>的类库中,typing.Tuple[int][typing.Tuple[int]]意味着什么?

在typing.List<~T>的类库中,typing.Tuple[int][typing.Tuple[int]]意味着什么?
EN

Stack Overflow用户
提问于 2016-11-07 18:17:20
回答 2查看 789关注 0票数 4

在玩Python的typing模块时,我发现了一些奇怪的东西:

代码语言:javascript
复制
>>> from typing import List, Tuple
>>> List[Tuple[int]]
typing.List<~T>[typing.Tuple[int]]

这个类似Java的语法List<~T>是什么?什么意思?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-07 18:29:18

让我们看看:

代码语言:javascript
复制
typing.List<~T>[typing.Tuple[int]]
  1. typing.List是指typing库中的一个类型,名为List
  2. <~T>意味着这种类型是泛型的,它是用另一种类型T定义的
  3. [typing.Tuple[int]]的意思是T类型是Tuple[int]类型。

在自然语言中,您可以这样阅读定义:

typing.List<~T>[typing.Tuple[int]]:一个整数元组的标准列表

票数 2
EN

Stack Overflow用户

发布于 2016-11-07 18:29:42

这不是真正的Python语法,所以不要试图在程序中使用它。也就是说,这就是他们选择表示泛型类型的类型参数的方式。在泛型类型的repr中,声明的类型参数列在类似Java的<>尖括号中,在每个类型参数之前有一个+-~,这取决于该参数是协变的、反变的还是两者都不是。

typing.List接受一个名为T的非协变、非反变型参数,因此它在名称之后得到一个<~T>

您会注意到,typing.Tuple在其名称之后没有任何<>内容。Tuple是一个奇怪的特例,因为它需要可变数量的类型参数。

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

https://stackoverflow.com/questions/40471846

复制
相关文章

相似问题

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