检查 PyObject 是否为“无”

Check if PyObject is None

本文关键字:PyObject 是否 检查      更新时间:2023-10-16

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

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

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

您可以使用

==直接与Py_None进行比较:

if (obj == Py_None)

从文档中:

请注意,NonePyTypeObject不会直接在 Python/C API。由于None是单例,因此测试对象标识 (在 C 中使用 ==)就足够了。没有PyNone_Check()函数 同样的原因。