我只想检查我拥有的PyObject
是否None
.我天真地期望从函数返回的任何None
Pyobject *
都是 NULL 指针,但事实似乎并非如此。
那么:如何检查我的PyObject *
是否指向None
对象?
我知道周围有像PyInt_Check(PyObject *)
这样的宏,但我找不到类似PyNone_Check
的东西。我以为我可以检查我的PyObject
和Py_None
之间的相等性,但事实证明我什至不知道如何与这个库进行相等比较。
==
直接与Py_None
进行比较:
if (obj == Py_None)
从文档中:
请注意,
None
的PyTypeObject
不会直接在 Python/C API。由于None
是单例,因此测试对象标识 (在 C 中使用==
)就足够了。没有PyNone_Check()
函数 同样的原因。