一:用C
API为Python写C语言函数,以方便Python中调用1.首先实现一个特定原型的函数,用Python
C API来实现的话,所有函数必须是这种原型。必须是类似这样的
PyObject
*Fun(PyObject *self, PyObject *args)
self应该是在用类的时候才会用到(我没有用到),args就是函数的参数。因为args是一个PyObject*类型(可以代表Python语言中的任何类型)
2.将参数转换成C语言表示的内容,用PyArg_ParseTuple函数。
3.执行完需要的操作后,也必须返回一个PyObject*类型的值。通过Py_BuildValue函数来构建。
这里要说的是,假如希望返回一个Tuple类型的值,可以先用
PyObject
*tuple = Py_BuildValue("(iis)", 1, 2, "three");
形式来构建,假如很多的话,可以用下面的方式来构建
PyObject
*t;
t
= PyTuple_New(3);
PyTuple_SetItem(t,
0, PyLong_FromLong(1L));
PyTuple_SetItem(t,
1, PyLong_FromLong(2L));
PyTuple_SetItem(t,
2, PyString_FromString("three"));
这一点在刚开始开工的时候迷惑了很久。
4.将要输出的所有函数放入一个数组中,数组的结构是ÿ