如何解决Numpy 类型注释中的多种返回类型
Numpy 的最新版本 1.20 workbox-background-sync
library。这很棒,而且像 mypy 这样的工具,现在不再抱怨 Numpy 缺少类型信息,而是抱怨你的代码。
这个简单的例子计算 n 维的 m 个点的质心,它总是返回一个点:
from numpy import ndarray
def centroid(points: ndarray) -> ndarray:
return points.mean(axis=0)
在 Numpy 1.20 之前,mypy 抱怨 Skipping analyzing numpy
。现在它说
Mypy:不兼容的返回值类型(得到“Union[number[Any],ndarray]”,预期为“ndarray”)
因为mean()
可能返回一个数字或一个数组,但centroid()
的返回值只能是一个数组。
无需增加执行时间即可避免警告
return cast(ndarray,points.mean(axis=0))
或者干脆
return points.mean(axis=0) # type: ignore
有没有更好的方法而不需要额外的计算?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。