我正在为Python模块编写一个简单的C包装器。 我需要做的是创建一个表示None
的新PyObject*
。 我不知道该怎么做。 有没有一个简单的函数会返回指向None
的PyObject*
,类似于PyTuple_New
返回指向新元组的PyObject*
或PyString_FromString'返回指向 python 字符串的?
注意 在调用如下函数时,传递 C NULL
是否有可能起作用? 例:
//pFunc points to a function with 2 arguments
PyObject *pArgs = PyTuple_New(2);
PyTuple_SetItem(pArgs, 0, PyString_FromString("hello"));
PyTuple_SetItem(pArgs, 1, NULL); // <--- will this create a python object representing None?
pValue = PyObject_CallObject(pFunc, pArgs);
根据文档,None
是一个单例,可以从 C 代码中作为Py_None
访问。
PyObject* Py_None
PythonNone
对象,表示缺乏价值。 此对象没有方法。它需要像对待任何其他人一样对待 对象与引用计数有关。
Py_RETURN_NONE
正确处理从 C 中返回的Py_None
功能。