Как представить класс 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.

Есть ли у вас какие-либо идеи? Спасибо за вашу помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос