为什么此代码生成类型注释警告



我有带有这些类型注释的python函数

def func_1() -> Optional[Sequence[str, List[str], str]]:
# do stuff
def func_2(a: str, b: List[str], c: str) -> None:
# do other stuff

为什么下面的代码会给我警告";应为类型列表[str,Any]',而应为'str'"在我调用func_2的那一行?

result = func_1()
func_2(result[0], result[1], result[2])

这是否意味着我的类型检查器有问题,或者我的代码有问题?

Sequence不适用于这样的多种类型。SequenceList不意味着具有结构(意味着,元素1总是int,元素2总是str,并且总是恰好长度2(。

您应该使用Tuple

另请参阅:https://stackoverflow.com/a/40181387/4597523

最新更新