В процессе реализации моей интеграции с python у меня возникла проблема. У меня есть класс, который выглядит следующим образом:Доступ к c указателю в классе python из метода python, cython
cdef class SomeClass:
cdef CPPClass* cpp_impl
def some_method(self):
self.cpp_impl.cppMethod()
И у меня есть класс CPP, который может вернуть CPPClass*
значение. Smth так:
class Creator
{
public:
CPPClass* createClass();
}
Так что я хотел бы создать экземпляр SomeClass, как это:
cdef class PyCreator:
cdef Creator* cpp_impl
def getSomeClass(self):
o = SomeClass()
o.cpp_impl = self.cpp_impl.createClass()
return o
Но я получаю сообщение об ошибке, что Cython не может преобразовать CPPClass*
в объект Python. Как я могу решить свою проблему? Спасибо.
Спасибо за ответ. Вы редактировали мой ответ, потому что я забыл использовать слово 'self', но это не моя проблема. Моя проблема в том, что я не могу получить доступ к указателю из метода python. – Megaxela
... это то, что должен сделать 'cdef SomeClass o = ...'. Затем он знает, что 'o.cpp_impl' является указателем' CPPClass', и поэтому должен работать – DavidW