Я только что прочитал следующий раздел учебника "SWIG and Python": http://www.swig.org/Doc1.1/HTML/Python.html#n11
Я понимаю, что они делают в примере, в основном вы пишете функцию C, которая вызывает Python.Тем не менее, приведенный пример занимает только двойное число в списке аргументов, что делает довольно простым создание списка аргументов для python.
У меня есть обратный вызов C ++, имеющий следующую подпись:
Vector (*CALLBACK)(Simulation*, Vector, Vector, double, void*)
где Vector и Simulation - мои собственные классы, а void * - для clientData, содержащего PyObject (как используется в примере)
Я знаю, что SWIG оборачивает классы Vector и Simulation, потому что я могу их создатьв оболочке питона.Единственная проблема в том, что я понятия не имею, как преобразовать аргумент Vector в функции обратного вызова в соответствующий PyObject для списка аргументов python.Очевидно, у SWIG есть какой-то способ сделать это, когда он оборачивает сам класс, но я не знаю, как выполнить это вручную в функции.
Любая помощь очень ценится!-Chase