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