C function in a Python context
castironpi at gmail.com
castironpi at gmail.com
Tue Feb 19 16:09:07 EST 2008
> #include <string>
> #include <vector>
This modification required:
compilercommand= 'c:/programs/mingw/bin/g++'
and
strctypes= { 'i': 'int', 's': 'const char*',
'O': 'PyObject*' }
The output is:
#include <c:/programs/python/include/Python.h>
[ user code ]
static PyObject *
extcode_enumfactors(PyObject *self, PyObject *args) {
PyObject* result;
int arg0;
const char* arg1;
PyArg_ParseTuple(args, "is", &arg0, &arg1 );
result= enumfactors( arg0, arg1 );
return Py_BuildValue( "O", result );
}
static PyMethodDef ExtcodeMethods[] = {
{ "enumfactors", extcode_enumfactors, METH_VARARGS, "" },
{NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC
initextcode(void) {
(void) Py_InitModule("extcode", ExtcodeMethods);
}
The benefits are automatic parameter parsing and automatic method
table construction. The costs are portability and parameter parsing
flexibility. Add up.
More information about the Python-list
mailing list