需要mypy中特定类型的列表

2024-05-17 11:36:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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拒绝此用法


Tags: 函数字符串fromimporttyping列表newstring
1条回答
网友
1楼 · 发布于 2024-05-17 11:36:15

问题在于List类型提示。如果没有类型参数,则会将其解释为List[Any],从而禁用所需的检查。(Any基本上是“不检查我”类型。)

如果希望mypy将lst视为“任意混合类型列表,并进行类型检查”,则应使用List[object]

相关问题 更多 >