在 mypy 中需要一个特定类型的列表

假设我有一个只能获取字符串列表的函数,如下所示:


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拒绝这种用法吗?


HUH函数
浏览 80回答 1
1回答

子衿沉夜

问题是List类型提示。如果没有类型参数,这将被解释为List[Any],禁用您想要的检查。(Any基本上是“不要检查我”类型。)如果您希望 mypy 将lst其视为“任意混合类型的列表,并进行类型检查”,则应使用List[object].
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python