假设我想创建一个函数,该函数将 lambda 函数(可调用)作为参数,其中 lambda 函数将向量作为输入(定义为 numpy 数组或 numpy 矩阵)并返回一个新向量。 如何使用 numpy 类型声明 Callable 的类型签名?
我最初的尝试是这样的:
def some_func(calc_new_vector: Callable[[np.array], np.array], ...other-params...) -> SomeType:
...do stuff...
...return...
但是,这会导致在运行解释器时出错:
TypeError: Callable[[arg, ...], result]: each arg must be a type. Got <built-in function array>.
最佳答案
令人困惑的是,np.array
是一个函数,可用于创建 numpy 数组。它不是所创建数组的实际类型
。
类型是np.ndarray
.
因此,将 np.array
替换为 np.ndarray
。这应该可以解决问题。
关于python - 如何在可选类型中使用 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328286/