【发布时间】:2021-05-02 15:02:00
【问题描述】:
我可以使用以下方法验证我的函数接收到正确类型的输入:
def foo(x: np.ndarray, y: float):
return x * y
确保如果我尝试将此函数与不是 np.ndarray 的 x 一起使用,我什至会在运行代码之前收到错误。
我不知道的是如何验证数组类型。例如:
def return_valid_points_only(points: np.ndarray, valid: np.ndarray):
assert points.shape == valid.shape
return points[valid]
我想检查valid 不仅是np.ndarray,而且还是valid.dtype == bool。
对于这个例子,如果 valid 将提供 0 和 1 来表示有效性,程序不会失败,我会得到可怕的结果。
谢谢
【问题讨论】:
-
你尝试
valid.dtype == bool? -
你用什么来检查类型?
mypy? IDE? -
edit - 抱歉,IDE 是自己做的
-
这些类型检查是为了让其他程序员更容易理解函数+如果它错误地使用它(从错误类型发送函数参数)Pychrm 让它当场知道
-
我想我们依赖 PyCharm 的功能来满足您的要求,而不是 Python。
标签: python numpy static-typing