SWIG Python默认参数

时间:2016-04-17 15:51:05

标签: python swig

给出以下C原型函数:

void my_function(POINTER *p);

如何使用SWIG生成调用时的Python包装:

my_function() --->它会调用my_function(NULL);

my_function(None) --->它会调用my_function(NULL);

my_function(my_pointer) --->它会调用my_function(my_pointer);

1 个答案:

答案 0 :(得分:2)

您希望SWIG为NULL生成默认参数p。这可以通过以下两种方式之一实现,请注意None会自动作为NULL指针传递。

1。使用“默认”类型映射(SWIG doc

在声明my_function

之前,将以下typemap放入接口文件中
%typemap(default) POINTER *p {
  $1 = NULL;
}

2。在函数声明(SWIG doc

中指定默认参数

您可以在界面文件中显示SWIG以下函数声明:

void my_function(POINTER *p = NULL);

即使这不是有效的C,SWIG也会知道该怎么做。您也可以在%include语句之后添加它来覆盖C头文件中的函数声明。