result = Py_BuildValue("");
并且可以使用类似的东西创建元组
result = Py_BuildValue("(ii)",123,456);
但我没有看到一种方法来组合它,例如,一个元组包含一个正确的整数和一个无值.
解决方法 在Python中只有一个None对象,你总是可以在C中将其称为 @L_419_1@.代码…
result = Py_BuildValue("");
…只是递增Py_None的引用计数并返回其指针,所以它与…相同
Py_INCREF(Py_None);result = Py_None;
如果你只想返回None,那么使用……
Py_INCREF(Py_None);return Py_None;
…或者,从Python 2.4开始,你可以用宏做同样的事情……
Py_RETURN_NONE;
如果你以元组的形式返回它,就像这样……
return Py_BuildValue("(O)",Py_None);
…没有必要增加引用计数 – Py_BuildValue()
就是为你做的.
但如果你把它归还像这样的元组……
PyObject* tuple = PyTuple_New(1);Py_INCREF(Py_None);PyTuple_SetItem(tuple,Py_None);return tuple;
…然后你必须增加引用计数,因为PyTuple_SetItem()
不会为你做.
以上是内存溢出为你收集整理的如何从C API返回包含None值的元组?全部内容,希望文章能够帮你解决如何从C API返回包含None值的元组?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)