Я борюсь с CYTHON, пытаюсь сделать копию класса C ++ в классе Python. У меня .pxd у меня есть:
cdef extern from "MyCppClass.h":
cdef cppclass MyCppClass:
MyCppClass ()
int Copy(MyCppClass * Source)
cdef class MyPyClass:
cdef MyCppClass * thisptr
cdef copy(self, MyCppClass *s)
и в .pyx у меня есть
cdef class MyPyClass:
def __init__(self):
self.thisptr = new MyCppClass ()
cdef copy(self, MyCppClass * s):
self.thisptr.Copy(s)
Компиляция в порядке.
Затем я пытаюсь использовать его в другой модуль Cython:
A=new MyCppClass()
pA=MyPyClass()
… do some stuff on A
p1.copy(A)
И я получаю обычное «не может преобразовать в Python объект». Я пытался скопировать множество вещей, например:
cdef getThisptr(self):
return self.thisptr
A=new MyCppClass()
pA=MyPyClass()
B=pA.getThisptr()
B.Copy(A)
Но ничего работает!
На Cython звучит очень просто c, но я все еще жду решения ...