检查返回值是否是Py_None的实例

时间:2015-04-20 08:11:38

标签: python numpy python-c-api

我必须使用函数(myAPI.readArr)在失败时返回标量numpy.ndarrayPy_None

这适用于失败:

data = myAPI.readArr(arg1, arg2)
if not data:
   raise Exception("Problem!")

但是对于有效的参数,我得到:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

如何检查呼叫是否成功?

2 个答案:

答案 0 :(得分:3)

data = myAPI.readArr(arg1, arg2)
if data is None:
   raise Exception("Problem!")

This answer包含有关与None

的比较的更多详细信息

答案 1 :(得分:3)

if data is None:
    raise Exception("Problem!")

测试is None更好,因为当且仅当值为True时,它才会返回None,而不是评估为零。