检查 PyObject 是否为 None
Check if PyObject is None
我想检查一下我拥有的 PyObject
是否是 None
。我天真地认为从函数返回的任何 None
Pyobject *
都是 NULL 指针,但事实并非如此。
那么:如何检查我的 PyObject *
是否指向 None
对象?
我知道周围有像PyInt_Check(PyObject *)
这样的宏,但是我找不到像PyNone_Check
这样的宏。我以为我可以检查 PyObject
和 Py_None
之间的相等性,但事实证明我什至不知道如何与这个库进行相等性比较。
您可以使用 ==
:
直接与 Py_None
进行比较
if (obj == Py_None)
来自docs:
Note that the PyTypeObject
for None
is not directly exposed in the
Python/C API. Since None
is a singleton, testing for object identity
(using ==
in C) is sufficient. There is no PyNone_Check()
function for
the same reason.
我想检查一下我拥有的 PyObject
是否是 None
。我天真地认为从函数返回的任何 None
Pyobject *
都是 NULL 指针,但事实并非如此。
那么:如何检查我的 PyObject *
是否指向 None
对象?
我知道周围有像PyInt_Check(PyObject *)
这样的宏,但是我找不到像PyNone_Check
这样的宏。我以为我可以检查 PyObject
和 Py_None
之间的相等性,但事实证明我什至不知道如何与这个库进行相等性比较。
您可以使用 ==
:
Py_None
进行比较
if (obj == Py_None)
来自docs:
Note that the
PyTypeObject
forNone
is not directly exposed in the Python/C API. SinceNone
is a singleton, testing for object identity (using==
in C) is sufficient. There is noPyNone_Check()
function for the same reason.