Проверьте, нет ли 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() для по той же причине.