如何在可选类型中使用 numpy

How to use numpy in optional typing

假设我想创建一个将 lambda 函数(可调用)作为参数的函数,其中 lambda 函数将向量作为输入(定义为 numpy 数组或 numpy 矩阵)和 returns 一个新向量. 如何使用 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 数组。它不是实际创建的数组 type

类型为np.ndarray

因此,将 np.array 替换为 np.ndarray。这应该可以解决问题。