假设我有一个只能获取字符串列表的函数,如下所示:from typing import Listdef iter_lower(lst: List[str]) -> List[str]: new_lst = [] for string in lst: new_lst.append(string.lower()) return new_lstlst: List = ["Hello", "World", 1]iter_lower(lst)mypy没有抱怨这一点,即使它显然是错误的,因为它lst是一个通用列表,包含一个与 . 不兼容的整数.lower()。我可以在参数列表中使用一些提示iter_lower会导致mypy拒绝这种用法吗?
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
问题是List
类型提示。如果没有类型参数,这将被解释为List[Any]
,禁用您想要的检查。(Any
基本上是“不要检查我”类型。)
如果您希望 mypy 将lst
其视为“任意混合类型的列表,并进行类型检查”,则应使用List[object]
.
添加回答
举报
0/150
提交
取消