Проверьте, нет ли PyObject
Я просто хотел бы проверить, есть ли PyObject
, который у меня есть None
. Я наивно ожидал, что любой None
Pyobject *
, возвращаемый функцией, будет указателем NULL, но это, похоже, не так.
Итак: как проверить, соответствует ли Pyobject *
моих точек объекту None
?
Я знаю, что есть макросы вроде PyInt_Check(PyObject *)
, но я не мог найти ничего подобного PyNone_Check
. Я думал, что могу просто проверить равенство между моими PyObject
и Py_None
, но, оказывается, я даже не знаю, как сделать сравнения сравнений с этой библиотекой.
Ответы
Ответ 1
Вы можете просто сравнить с Py_None
с помощью ==
:
if (obj == Py_None)
Из docs:
Обратите внимание, что PyTypeObject
для None
не отображается непосредственно в API Python/C. Поскольку None
является одноэлементным, тестирование для идентификации объекта (с использованием ==
в C). Нет функции PyNone_Check()
для по той же причине.