我是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 &'