如何使用%pythonappend和%pythonprepend来访问SWIG中的参数和返回值?

时间:2014-07-27 16:05:40

标签: python swig

%pythonappend%pythonprepend的SWIG文档过于简短。我想知道如何访问那些python块中的返回值和输入参数。例如,以下是SWIG doc的一个例子:

%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);
}

如何在此处打印输入参数xbar的返回值? 谢谢!

1 个答案:

答案 0 :(得分:2)

访问输入参数:

print(args)

访问返回值:

print(val)

警告: 我通过阅读生成的.py文件得到了这个答案。不幸的是,似乎没有官方支持访问参数和返回值。这种方法可能会在将来的swig版本中破坏您的代码。