在生成的.py文件中添加注释

SWIG: Add comments to generated .py file

本文关键字:添加 注释 文件 py      更新时间:2023-10-16

使用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可能是一个可能的解决方案,但它在函数定义内插入代码,而不是在它之前。

EDIT:这是我在。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);

查看Python的SWIG中的文档字符串特性。可能会在.i文件

中放入以下行
%feature("autodoc", "1")

会做你想做的(更多选项见http://www.swig.org/Doc2.0/Python.html#Python_nn65)