微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将参数注释为 np.ndarray 有什么意义?

如何解决将参数注释为 np.ndarray 有什么意义?

假设我有以下文件 t2.py

import numpy as np
from typing import Dict,Any

def func(arr: np.ndarray):
    arr.to_json()
    arr.to_jason()

class MyClass:
    def to_json(self) -> Dict[str,Any]: ...

def my_func(arr: MyClass):
    arr.to_json()
    arr.to_jason()

如果我运行 mypy 我得到

$ mypy t2.py --ignore-missing-imports
t2.py:13: error: "MyClass" has no attribute "to_jason"; maybe "to_json"?
Found 1 error in 1 file (checked 1 source file)

因此,在 func2 中,当我将 arr 注释为 MyClass 然后对其调用不存在的方法时,mypy 发现了错误。但是当我在 func调用不存在的方法时,arr 并没有发生同样的情况,注释为 np.ndarray

确实,如果我使用 reveal_type,那么在 func 中我看到它是 Any 类型。

然而,我看到很多人在他们的代码中将变量注释为 np.ndarray。人们为什么要这样做?只是为了可读性,还是可以帮助 mypy 真正找到任何错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。