为后来成为特定类型的元组的空元组设置正确的类型
Posted
技术标签:
【中文标题】为后来成为特定类型的元组的空元组设置正确的类型【英文标题】:Setting the correct type for an empty tuple that later becomes a tuple of a specific type 【发布时间】:2022-01-12 16:57:26 【问题描述】:我有一个如下所示的 python 函数:
from typing import Tuple
def test() -> Tuple[int]:
o: Tuple[int] = ()
for i in range(2):
o+=(i,)
return o
用 mypy 评估它会返回错误
error: Incompatible types in assignment (expression has type "Tuple[]", variable has type "Tuple[int]")
error: Incompatible types in assignment (expression has type "Tuple[int, int]", variable has type "Tuple[int]")
在没有 int 规范的情况下分配元组并返回类型 Tuple 可以解决此问题。我也想指定元组的内容。我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:# For tuples of variable size, we use one type and ellipsis
x: tuple[int, ...] = (1, 2, 3) # Python 3.9+
x: Tuple[int, ...] = (1, 2, 3)
发件人:
https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html
【讨论】:
【参考方案2】:关于类型提示,Tuple
与 List
不同。
Tuple[int]
表示“tuple
of 1 int
”
Tuple[int, int]
表示“tuple
of 2 int
s”
List[int]
表示“list
of int
s”
【讨论】:
以上是关于为后来成为特定类型的元组的空元组设置正确的类型的主要内容,如果未能解决你的问题,请参考以下文章