【发布时间】:2015-02-27 17:32:45
【问题描述】:
使用 Cython 包装自定义类型 C++ 指针的最佳方法是什么?
例如:
import numpy as np
cimport numpy as np
cdef extern from "A_c.h"
cdef cppclass A:
A();
void Foo(A* vec);
cdef class pyA:
cdef A *thisptr
def ___cinit___(self):
self.thisptr = new A()
def __dealloc___(self):
del self.thisptr
我应该如何使用 cython 来包装 Foo?我尝试了以下方法,但我从 Buffer.py 中得到了断言错误,或者 A 不是 memoryview 切片的基本类型的错误
def Foo(self, np.ndarray[A, mode='c'] vec)
def Foo(self, A[::1] vec)
【问题讨论】:
-
A* vec是指向单个对象的指针还是A类型的对象向量?我想知道“vec”这个名字和你对 numpy/memory 视图的使用。 -
在这种情况下,它是指向单个对象A的指针,不幸的是vec被选为占位符名称
标签: python c++ pointers numpy cython