检查PyObject是否为None

时间:2015-04-19 16:50:53

标签: python c++ nonetype pyobject

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

那么:我如何检查我的None是否指向PyInt_Check(PyObject *)个对象?

我知道有PyNone_Check这样的宏,但我找不到像PyObject这样的内容。我想我可以检查Py_None和{{1}}之间的平等,但事实证明我甚至不知道如何与这个库进行相等比较。

1 个答案:

答案 0 :(得分:17)

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

if (obj == Py_None)

来自docs

  

请注意,PyTypeObject的{​​{1}}未直接公开   Python / C API。 由于None是单身,因此需要测试对象标识   (在C中使用None就足够了。没有==函数   同样的原因。