使用SWIG为C ++应用程序生成Python接口,有没有办法让它在生成的.py文件中注释函数?我实际上将整个.h文件放入.i文件中,但是只是一个小例子:
%module example
bool do_something_interesting(int number, string text);
swig -python example.i
生成:
...
def do_something_interesting(*args):
return _example.do_something_interesting(*args)
do_something_interesting = _example.do_something_interesting
理想情况下,我希望自动添加带有原始方法签名的评论
#bool do_something_interesting(int number, string text)
def do_something_interesting(*args):
return _example.do_something_interesting(*args)
do_something_interesting = _example.do_something_interesting
但我完全可以在某处写自己的评论(特别是如果评论可能以某种方式在.h文件中)。我认为%pythonprepend
可能是一种可能的解决方案,但它会在函数定义中而不是在函数定义之前插入代码。
编辑:以下是我在.h文件中提到的内容。不是最漂亮的东西,但它会做:
#ifdef SWIG
%pythonprepend do_something_interesting(int, string) %{
"""Do some interesting thing
number:Int -- a number
text:String -- some text
"""
%}
#endif
bool do_something_interesting(int number, string text);
答案 0 :(得分:6)
查看SWIG for Python中的docstring功能。 可能将以下行放在.i文件中
%feature("autodoc", "1")
会做你想做的事情(有关更多选项,请参阅http://www.swig.org/Doc2.0/Python.html#Python_nn65)