假设我有一个只能获取字符串列表的函数,如下所示:
from typing import List
def iter_lower(lst: List[str]) -> List[str]:
new_lst = []
for string in lst:
new_lst.append(string.lower())
return new_lst
lst: List = ["Hello", "World", 1]
iter_lower(lst)
mypy
并没有对此抱怨,尽管这显然是错误的,因为lst
是一个泛型列表,包含一个与.lower()
不兼容的整数。在iter_lower
的参数列表中是否有一些提示可以导致mypy
拒绝此用法
问题在于
List
类型提示。如果没有类型参数,则会将其解释为List[Any]
,从而禁用所需的检查。(Any
基本上是“不检查我”类型。)如果希望mypy将
lst
视为“任意混合类型列表,并进行类型检查”,则应使用List[object]
相关问题 更多 >
编程相关推荐