Как преобразовать объект Python в обернутый SWIG объект класса C ++? - PullRequest
0 голосов
/ 15 февраля 2019

Я новичок в SWIG.Я обернул C ++ класс N :: A, используя SWIG.Мне нужно вызвать A.Init(N::B& const) через python, где N::B определяется через protobuf file(B_params.proto), и использовать его для объявления класса в python.Как преобразовать объект Python типа B для вызова функции C ++?

A.i:

%module A_wrap
%{
#include "path/to/A.h"
using namespace N;
%}
namespace N {
  class B;
  class A {
    public:
    A() = default;

    // Initializes the A object.
    Result Init(const N::B& params);
  };
}

A.py:

import B_pb
from A_wrap import A

a = A()
b = B()
a.Init(B)

В настоящее время я получаюследующая ошибка

TypeError: in method 'A_Init', argument 2 of type 'N::B const &'
...