我发现swig为C++函数生成的Python包装器有以下几行:
def my_func(arg):
return _cpp_mod.my_cpp_func(arg)
my_func = _cpp_mod.my_cpp_func
Run Code Online (Sandbox Code Playgroud)
.i文件中的源代码如下:
%module cpp_mod
... ...
%inline %{
MyObj& my_cpp_func(arg) {
return *new MyObj(arg);
}
%}
Run Code Online (Sandbox Code Playgroud)
生成的代码的所有功能似乎都可以.
我想知道的是
生成的python代码的第三行的目的.提前致谢.
这正是 SWIG 决定包装函数的方式。第一部分
def my_func(arg):
return _cpp_mod.my_cpp_func(arg)
Run Code Online (Sandbox Code Playgroud)
显示输入参数的数量,如果生成注释,它们将被插入此处。
第二部分
my_func = _cpp_mod.my_cpp_func
Run Code Online (Sandbox Code Playgroud)
正在将函数重新定义为生成的库函数