在函数定义之后将返回对象分配给函数名的目的

Smi*_*ith 8 python swig

我发现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代码的第三行的目的.提前致谢.

Jen*_*unk 0

这正是 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)

正在将函数重新定义为生成的库函数