22

PyObject私が持っているa が であるかどうかを確認したいだけですNone。関数から返されるものはすべて NULL ポインターになると素朴に予想してNone Pyobject *いましたが、そうではないようです。

PyObject *では、私のオブジェクトがオブジェクトを指しているかどうかを確認するにはどうすればよいNoneですか?

のようなマクロがあることは知っていますがPyInt_Check(PyObject *)、 のようなものは見つかりませんでしPyNone_Checkた。PyObjectと の等価性をチェックするだけでよいと思ってPy_Noneいましたが、このライブラリで等価性を比較する方法さえわからないことがわかりました。

4

1 に答える 1

27

Py_Noneを使用して直接比較できます==

if (obj == Py_None)

ドキュメントから:

PyTypeObjectforNoneは Python/C API で直接公開されていないことに注意してください。はシングルトンであるため、( C でNone使用する) オブジェクト ID のテストで十分です。==PyNone_Check()同じ理由で機能はありません。

于 2015-04-19T16:57:28.383 に答える