我有一个函数,我试图返回一个整数和一个整数向量。我拥有的是
cdef func() nogil:
cdef vector[int] vect
cdef int a_number
...
return a_number, vect
但这会产生类似Assignment of Python object not allowed without gil
的错误。有解决方法吗?
答案 0 :(得分:1)
Cython具有ctuple
类型的http://docs.cython.org/en/latest/src/userguide/language_basics.html#types
%%cython -a -f -+
from libcpp.vector cimport vector
cdef (vector[int], double) func() nogil:
cdef vector[int] vec
cdef double d = 3.14
cdef int i
for i in range(10):
vec.push_back(i)
return vec, d
答案 1 :(得分:0)
您需要返回一个C ++结构:一个结构,一个向量,一个std :: pair等,而不是python元组对象。