我需要将一个Python的int列表转换为cdef函数中的vector[int]来调用另一个C函数。我试过这个:
cdef pylist_to_handles(hs):
cdef vector[int] o_vect
for h in hs:
o_vect.push_back(h)
return o_vect
这应该可以工作,因为我只需要从其他cdef函数调用它,但是我得到这个错误:
Cannot convert 'vector<int>' to Python object
我做错什么了?
Tags:
在Cython 0.17中,使用libcpp.vector,可以执行以下操作:
你真正拥有的是:
如果不明确地设置类型,则假定它是python对象(代码中为“对象”)。正如您在代码中看到的,您试图将vector[int]转换为一个对象,但是Cython不知道如何处理它。
只需在cdef中添加一个返回类型:
相关问题 更多 >
编程相关推荐