我有带有这些类型注释的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
不适用于这样的多种类型。Sequence
和List
不意味着具有结构(意味着,元素1总是int
,元素2总是str
,并且总是恰好长度2(。
您应该使用Tuple
。
另请参阅:https://stackoverflow.com/a/40181387/4597523