Как представить класс C ++ для Python без сборки модуля
Я хочу знать, есть ли какой-нибудь способ представить класс C ++ для Python, но без создания промежуточной разделяемой библиотеки.
Вот мой желательный сценарий. Например, у меня есть следующий класс C ++:
class toto
{
public:
toto(int iValue1_, int iValue2_): iValue1(iValue1_), iValue2(iValue2_) {}
int Addition(void) const {if (!this) return 0; return iValue1 + iValue2;}
private:
int iValue1;
int iValue2;
};
Я хотел бы как-то преобразовать этот класс (или его intance) в PyObject *, чтобы отправить его как paremter (args), например, в PyObject_CallObject:
PyObject* PyObject_CallObject(PyObject* wrapperFunction, PyObject* args)
С другой стороны, в моей стороне Python у меня будет функция wrapperFunction, которая получает указатель на мой класс C ++ (или его экземпляр) в качестве параметра и вызывает его методы или использует его свойства:
def wrapper_function(cPlusPlusClass):
instance = cPlusPlusClass(4, 5)
result = instance.Addition()
Как видите, мне не нужно / не нужно иметь отдельную разделяемую библиотеку или собирать модуль с помощью boost python. Все, что мне нужно, это найти способ преобразовать код C ++ в PyObject и отправить его в python. Я не могу найти способ сделать это с помощью библиотек C Python, Boost или SWIG.
Есть ли у вас какие-либо идеи? Спасибо за вашу помощь.