我是Python的新手,我已经做了很多尝试,看看它是否有效。在本例中,当我将Callable应用于NDArray时,我得到了一个结果,只是不是我所期望的。
from typing import Callable
from typing import Tuple
import numpy as np
callable : Callable[[float], Tuple[float, float]] = lambda x : (x , x + 1)
array : np.ndarray = np.asarray([0, 1, 2, 3])
result = callable(array)
print(result)
我期望(或者说希望)得到一个元组的可迭代对象,其中每个元组都是应用于float的可调用对象的输出。我得到的是一个数组元组:
(array([0, 1, 2, 3]), array([1, 2, 3, 4]))
到底发生了什么?(为什么我应该期待我实际得到的结果?)
1条答案
按热度按时间qlfbtfca1#
总结一下,
callable
的类型注解是误导性的,lambda只是应用于数组本身--就像我对result=(array, array+1)
所做的一样。没有什么神秘的事情。谢谢你的帮助