使用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);发布于 2011-11-04 04:19:26
请查看SWIG for Python中的docstring特性。可能在您的.i文件中放置下面一行
%feature("autodoc", "1")会做您想做的事情(更多选项请参见http://www.swig.org/Doc2.0/Python.html#Python_nn65 )
https://stackoverflow.com/questions/8001082
复制相似问题