将值列表映射到float时出现mypy错误



我正在尝试使用mypy评估以下语句:

a = [1,2,3]
b = map(float, a)

这会返回错误

Argument 1 to "map" has incompatible type "Type[float]"; expected "Callable[[str], str]"

但在运行时,这在执行时没有问题。这个问题的原因是什么?

我也无法复制它(Python版本3.9.0,mypy版本0.910(,所以首先要尝试的是升级到最新版本。

不完全是同一个问题,但mypy github上的这些问题可能是一个有趣的参考:

https://github.com/python/mypy/issues/6697(打开(
https://github.com/python/mypy/issues/1855(关闭(

基于这些,看起来以下内容可能会在没有mypy错误的情况下通过:

b = map(lambda x: float(x), a)
a = [1,2,3]
b = map(lambda x: float(x), a)

这个问题与结果变量和应用map的变量使用相同的名称有关,我正在做一些类似的事情

a = b.split()
a = list(map(lambda x: float(x),a))

这导致了错误。更改此处最后一行中的变量名解决了此问题。

最新更新