【发布时间】:2016-01-16 11:41:51
【问题描述】:
我正在使用 Python C Api 来填充包含 PyObject* 元素的列表并将其传输到 Python 中的函数。一切都很顺利,但有一个问题 - Python 中的传输列表包含奇怪的 <NULL> 条目。 List 也包含“想要的”对象,所以它看起来几乎可以工作了。
这是列表预览:
[<NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <NULL>, <dbg.TBack object at 0x19675870>, <interface.Grid object at 0x196758B0>, <interface.Grid object at 0x196758F0>, <interface.slp object at 0x196757D0>]
我用于在 Python C API 中填充列表的代码。
PyObject* list = PyList_New(objectsList.size());
PyObject* handle;
for (auto child : objectsList) {
if (!child) {
continue;
}
handle = child->GetHandle(); // handle = PyObject*
if (!handle) {
continue;
}
PyList_Append(list, handle);
}
return list; // push
我尝试添加if(!handle) 检查,但实践中似乎没有任何结果。
问题:如何删除列表中的 <NULL> 条目?
【问题讨论】:
标签: python c++ python-2.7 c++11