【发布时间】:2015-02-20 21:26:25
【问题描述】:
我正在开发具有 C++ 和 Python API 的应用程序,并且正在实现需要在两种语言中使用的 API 调用。此 API 发回的部分数据是表示颜色信息的结构数组:
struct {
float r;
float g;
float b;
float a;
} Foo_Pixel;
在我的互操作代码中,我如此编组数据:
Foo_Pixel color;
PyObject* tileValues = PyList_New( numValues );
for (int pixelIndex = 0; pixelIndex < numValues; pixelIndex++)
{
color = value[pixelIndex];
PyObject* newColourItem = Py_BuildValue("ffff", color.r, color.g, color.b, color.a);
PyList_SetItem(tileValues, pixelIndex, newColourItem);
}
基本上,我正在循环提供的数据并构建一个元组列表供用户使用。但是,这对我来说似乎有点低效。有没有更快的方法从浮点结构数组中创建 PyObject?
【问题讨论】:
标签: python c++ interop python-c-api