Используя SWIG для создания интерфейса Python для приложения C ++, есть ли способ прокомментировать функции в сгенерированном файле .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);