По крайней мере для интерпретаторов 2.x: вы пишете свои методы как код в стиле C с возвращаемыми значениями PyObject *.Все они в основном выглядят так:
PyObject* foo(PyObject *self, PyObject *args);
Затем вы собираете эти методы в статический массив PyMethodDef:
static PyMethodDef MyMethods[] =
{
{"mymethod", foo, METH_VARARGS, "What my method does"},
{NULL, NULL, 0, NULL}
};
Затем, после того как вы создали и инициализировали интерпретатор, выВы можете добавить эти методы «в» интерпретатор с помощью следующего:
Py_InitModule("modulename", MyMethods);
Теперь вы можете ссылаться на свои методы через объявленное здесь modulename.
Дополнительная информация здесь: http://www.eecs.tufts.edu/~awinsl02/py_c/