Как преобразовать объект C++ в объект Python с помощью Cython?Python

Программы на Python
Гость
Как преобразовать объект C++ в объект Python с помощью Cython?

Сообщение Гость »


Мне хотелось бы знать, как Python преобразует объект пользовательского класса C++ в объект Python. Нужно ли мне что-то делать с классом Message?

Message — это пользовательский класс, содержащийся в потоковой передаче. х

Файл: test.h

#include "Streaming.h" //Определение класса Сообщение вектор subscribe_(строка Taskid){ вектор vecMsg; ... вернуть vecMsg; } Файл: Streaming_test.pyx

из libcpp.vector вектор cimport из libcpp.string строка импорта cdef extern из «Streaming.h»: cdef cppclass Сообщение: Сообщение() кроме + cdef extern из «test.h»: вектор [Сообщение] subscribe_ (const string TaskID) nogil def __subscribe(string TaskID): cdef вектор [Сообщение] vecMsg списокMsg = [] vecMsg = подписаться_(задача) для меня в диапазоне (vecMsg.size()): listMsg.append(vecMsg) вернуть списокMsg Файл:setup.py

#build: python setup.py build_ext --inplace из настройки импорта distutils.core, расширение из Cython.Build импортировать cythonize ext = Extension("wrapper_streaming", источники = ["streaming_test.pyx"], язык = "С++", Library_dirs = ["../../build"], библиотеки = ["DolphinDBAPI","pthread","ssl","rt"], include_dirs = ["/root/api-cplusplus/include"], extra_compile_args = ["-std=c++11"] ) setup(ext_modules=cythonize(ext, Language_level = 3)) Ошибка, возникающая при попытке скомпилировать это:

vecMsg = subscribe_(задача) для меня в диапазоне (vecMsg.size()): listMsg.append(vecMsg) ^ -------------------------------------------------- ---------- streaming_test.pyx:115:23: Невозможно преобразовать «Сообщение &» в объект Python Как преобразовать объекты типа Message в объекты Python? Сообщение — это пользовательский класс, содержащийся в потоковой передаче. ч

Вернуться в «Python»