Страница help
модуля, созданного с помощью SWIG
, не совсем полезна.На самом деле, он даже не перечисляет аргументы каждой функции.
Help on module example:
NAME
example
FILE
/home/anon/example.py
DESCRIPTION
# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
FUNCTIONS
fact(...)
get_time(...)
my_mod(...)
DATA
cvar = <Swig global variables>
(END)
Вопрос: есть ли способ сообщить swig
- с некоторой опцией - to по крайней мере включить точный список именованных аргументов каждой функции?
Я хотел бы получить по крайней мере что-то следующее:
...
fact(n)
...
my_mod(x, y)
...
Более высокий уровень качествадокументация в целом также приветствуется.
Я знаю, что могу получить этот результат, если переименую исходную функцию foo
в _foo
, а затем вручную определю новую foo()
.Но есть ли какой-то другой, систематический и встроенный подход, который достигает той же цели?
Это список команд, которые я выполнил, взятые из этого урока :
~$ swig -python example.i
~$ gcc -fPIC -c example.c example_wrap.c \
-I/usr/include/python2.7
~$ ld -shared example.o example_wrap.o -o _example.so
Файл example.c
:
/* File : example.c */
#include <time.h>
double My_variable = 3.0;
int fact(int n) {
if (n <= 1) return 1;
else return n*fact(n-1);
}
int my_mod(int x, int y) {
return (x%y);
}
char *get_time()
{
time_t ltime;
time(<ime);
return ctime(<ime);
}
Файл example.i
:
/* example.i */
%module example
%{
/* Put header files here or function declarations like below */
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();
%}
extern double My_variable;
extern int fact(int n);
extern int my_mod(int x, int y);
extern char *get_time();