首页 > 解决方案 > 注释压缩元组的类型

问题描述

我正在尝试 Python 3.7.6 中的类型提示

from typing import Tuple
v1: Tuple[int, int] = (3,4)
v2: Tuple[int, int] = (2,3)
# build the sum of the two vectors
mysum: Tuple[int, int] = tuple(sum(t) for t in zip(v1, v2)) 
print(mysum)

这段代码运行良好。但是mypy不高兴:

typedzip.py:5: error: Incompatible types in assignment (expression has type "Tuple[int, ...]", variable has type "Tuple[int, int]")
Found 1 error in 1 file (checked 1 source file)

我是mypy的新手。我必须从这里有哪些选择?我想摆脱 mypy 错误(我设置了我的 IDE 以将所有带有 mypy 错误的文件标记为红色 - 我非常喜欢这一点)。最好不要告诉 mypy 忽略此文件或此类错误。我可以提供更多类型提示吗?

我知道,在这种简单的情况下,我可以用一个新的二值元组的简单构造来替换理解。压缩似乎失去了类型对其基数的意识。但我想知道我是否可以通过提供更多提示或告诉它元组的基数来帮助类型推理系统。

标签: pythonpython-3.xtuplespython-typing

解决方案


推荐阅读