我想检查一下我PyObject
None
是否None
。我天真地期望从函数返回的任何Pyobject *
PyObject *
都是NULL指针,但似乎并非如此。
那么:我如何检查我的None
是否指向PyInt_Check(PyObject *)
个对象?
我知道有PyNone_Check
这样的宏,但我找不到像PyObject
这样的内容。我想我可以检查Py_None
和{{1}}之间的平等,但事实证明我甚至不知道如何与这个库进行相等比较。
答案 0 :(得分:17)
您可以使用Py_None
直接与==
进行比较:
if (obj == Py_None)
来自docs:
请注意,
PyTypeObject
的{{1}}未直接公开 Python / C API。 由于None
是单身,因此需要测试对象标识 (在C中使用None
就足够了。没有==
函数 同样的原因。