Wrapper-Funktionen in unserem Fall dienen als Bindeglied („glue“ language) zwischen verschiedenen Programmiersprachen.
Wir brauchen sie z.B. um Ausgabewerte in eine Python-freundlice Form zu bringen.
// factorial.c
int fact(int n) {
if (n <= 1)
return 1;
else
return n*fact(n-1);
}
PyObject *wrap_fact(PyObject *self,
PyObject *args) {
int n, result;
if (!PyArg_ParseTuple(args, "i:fact", &n))
return NULL;
result = fact(n);
return Py_BuildValue("i", result);
}