检查PyObject是否为None

Mat*_*nti 19 c++ python pyobject nonetype

我想检查PyObject一下我是否有None.我天真地期望None Pyobject *从函数返回的任何东西都是NULL指针,但似乎并非如此.

那么:我如何检查我的一个是否PyObject *指向一个None物体?

我知道有像PyInt_Check(PyObject *)周围的宏,但我找不到类似的东西PyNone_Check.我以为我可以检查我PyObject和之间的平等Py_None,但事实证明我甚至不知道如何与这个库进行相等比较.

iCo*_*dez 21

您可以直接与Py_None使用比较==:

if (obj == Py_None)
Run Code Online (Sandbox Code Playgroud)

来自文档:

请注意,PyTypeObjectfor None不直接在Python/C API中公开.由于None是单身,因此测试对象身份(==在C中使用)就足够了.PyNone_Check()由于同样的原因,没有任何功能.