如何在SWIG中使用%pythonappend和%pythonprepend访问参数和返回值?
SWIG的文档中关于%pythonappend
和%pythonprepend
的说明太简单了。我想知道在这些Python代码块中,怎么获取返回值和输入参数。例如,这里有一个来自SWIG文档的例子:
%module example
// Add python code to bar()
%pythonprepend Foo::bar(int) %{
#do something before C++ call
%}
%pythonappend Foo::bar(int) %{
#do something after C++ call
%}
class Foo {
public:
int bar(int x);
}
那么,怎么打印输入参数x
和bar
的返回值呢?谢谢!
1 个回答
2
获取输入参数:
print(args)
获取返回值:
print(val)
警告:我通过查看生成的 .py 文件得到了这个答案。不幸的是,目前似乎没有官方支持来访问参数和返回值。这个方法在未来的 swig 版本中可能会导致你的代码出现问题。