Mic*_*ahl 13 python numpy typing python-3.5
假设我想创建一个函数,它将lambda函数(Callable)作为参数,其中lambda函数将向量作为输入(定义为numpy数组或numpy矩阵)并返回一个新向量.如何使用numpy类型声明Callable的类型签名?
我最初的尝试看起来像这样:
def some_func(calc_new_vector: Callable[[np.array], np.array], ...other-params...) -> SomeType:
...do stuff...
...return...
Run Code Online (Sandbox Code Playgroud)
但是,这会在运行解释器时导致错误:
TypeError: Callable[[arg, ...], result]: each arg must be a type. Got <built-in function array>.
Run Code Online (Sandbox Code Playgroud)
shx*_*hx2 16
令人困惑的是,这np.array是一个对创建numpy数组有用的函数.它不是type创建的数组的实际值.
类型是np.ndarray.
因此,更换np.array用np.ndarray.这应该解决问题.
| 归档时间: |
|
| 查看次数: |
3609 次 |
| 最近记录: |