我的方法在C ++代码中返回std::array<std::string, 4>
。我使用Cython包装此代码。我试图使用内存视图包装数组。但结果是Invalid base type for memoryview slice: string
。那么我可以将std::array<std::string, 4>
包装在python中使用它,就像strs列表一样吗?
答案 0 :(得分:2)
最简单的方法可能只是复制到Python列表。
为了这个答案,我假设你已经将你的数组包裹起来,类似于this answer并称之为arrstr4
。然后代码看起来像:
def f():
cdef arrstr4 res = your_cplus_plus_function()
py_res = []
for i in range(4):
py_res.append(res[i]) # take advantage of autoconversion to python string
return py_res