如何将python对象转换为SWIG包装的C ++类对象?

时间:2019-02-15 04:51:08

标签: python c++ protocol-buffers swig

我是SWIG的新手。我已经使用SWIG包装了C ++类N :: A。我需要通过python调用A.Init(N::B& const),其中N::B是通过protobuf file(B_params.proto)定义的,并使用相同的名称在python中声明该类。 如何转换类型B的python对象以调用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 &'

0 个答案:

没有答案