尝试编写Python的C扩展


你知道就算大雨让这座城市颠倒 我会给你怀抱 受不了看见你背影来到 写下我度秒如年难捱的离骚

一个加法方法示例

>>> import my
>>> my.add(1,2)
3

实现代码

#include "Python.h"
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>

static PyObject *
add(PyObject *self,PyObject *args){
    const int *x;
    const int *y;
    if (!PyArg_ParseTuple(args, "ii", &x, &y))
        return NULL;
    return Py_BuildValue("i",x+y);
}

PyMethodDef methods[] = {
  {"add", add, METH_VARARGS},
}

void initpycabinet(){
    PyObject* m;
    m = Py_InitModule("my", methods);
}

qingfeng at me.com