您的位置:首页 > 编程语言 > Python开发

python 教程 第二十一章、 扩展Python

2013-07-23 17:03 232 查看
第二十一章、 扩展Python

/* D:\Python27\Lib\Extest-1.0\Extest2.c */


#include <stdio.h>

#include <stdlib.h>

#include <string.h>


#include "Python.h"


int fac(int n)

{

if (n < 2) return(1);

return (n)*fac(n-1);

}


static PyObject *

Extest_fac(PyObject *self, PyObject *args)

{

int num;

if (!PyArg_ParseTuple(args, "i", &num))

return NULL;

return (PyObject*)Py_BuildValue("i", fac(num));

}


static PyMethodDef

ExtestMethods[] =

{

{ "fac", Extest_fac, METH_VARARGS },

{ NULL, NULL },

};


void initExtest()

{

Py_InitModule("Extest", ExtestMethods);

}

#!/usr/bin/env python

# D:\Python27\Lib\Extest-1.0\setup.py

from distutils.core import setup, Extension


MOD = 'Extest'

setup(name=MOD, ext_modules=[

Extension(MOD, sources=['Extest2.c'])])

将Extest2.c和setup.py放入 Extest-1.0目录下
安装MinGW编译环境(mingw-get-inst-20110530.exe)
下载http://sourceforge.net/projects/mingw/

D:\Python27\Lib\Extest-1.0>python setup.py install build --compiler=mingw32

测试一下

>>> import Extest

>>> Extest.fac(10)

3628800

>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: