关于python:检查返回值是否是Py_None的实例

Check if return value is instance of Py_None

本问题已经有最佳答案,请猛点这里访问。

我必须使用一个C函数(myAPI.readArr,它在失败时返回一个标量,numpy.ndarrayPy_None

这适用于故障:

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

但对于有效的论点,我得到:

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

如何检查呼叫是否成功?


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

测试is None更好,因为只有当且仅当值为None时返回True,而不是当值为零时返回。


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

这个答案包含了更多关于与None比较的细节。