易截截图软件、单文件、免安装、纯绿色、仅160KB

用C语言扩展Python的功能


原文
Python和C分别有着各自的优缺点,用Python开发程序速度快,可靠性高,并且有许多现成模块可供使用,但执行速度相对较慢;C语言则正好相反,其执行速度快,但开发效率低。为了充分利用两种语言各自的优点,比较好的做法是用Python开发整个软件框架,而用C语言实现其关键模块。本文介绍如何利用C语言来扩展Python的功能,并辅以具体的实例讲述如何编写Python的扩展模块。
一、简介
Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型软件系统的开发过程中。
与其它普通脚本语言有所不同,Python程序员可以借助Python语言提供的API,使用C或者C++来对Python进行功能性扩展,从而即可以利用Python方便灵活的语法和功能,又可以获得与C或者C++几乎相同的执行性能。执行速度慢是几乎所有脚本语言都具有的共性,也是倍受人们指责的一个重要因素,Python则通过与C语言的有机结合巧妙地解决了这一问题,从而使脚本语言的应用范围得到了很大扩展。
在用Python开发实际软件系统时,很多时候都需要使用C/C++来对Python进行扩展。最常见的情况是目前已经存在一个用C编写的库,需要在Python语言中使用该库的某些功能,此时就可以借助Python提供的扩展功能来实现。此外,由于Python从本质上讲还是一种脚本语言,某些功能用Python实现可能很难满足实际软件系统对执行效率的要求,此时也可以借助Python提供的扩展功能,将这些关键代码段用C或者C++实现,从而提供程序的执行性能。
本文主要介绍Python提供的C语言扩展接口,以及如何使用这些接口和C/C++语言来对Python进行功
能性扩展,并辅以具体的实例讲述如何实现Python的功能扩展。
回页首
二、Python的C语言接口
Python是用C语言实现的一种脚本语言,本身具有优良的开放性和可扩展性,并提供了方便灵活的应用程序接口(API),从而使得C/C++程序员能够在各个级别上对Python解释器的功能进行扩展。在使用C/C++对Python进行功能扩展之前,必须首先掌握Python解释所提供的C语言接口。
2.1 Python对象(PyObject)
Python是一门面向对象的脚本语言,所有的对象在Python解释器中都被表示成PyObject,PyObject结构包含Python对象的所有成员指针,并且对Python对象的类型信息和引用计数进行维护。在进行Python的扩展编程时,一旦要在C或者C++中对Python对象进行处理,


相关文档:

C整型升级和寻常算术转换

                                                   ......

什么才叫精通C/C++


It is better to have the ability of fast learning
有一天你覺得甚麼都知道了   可悲
有一天你卻發現你甚麼都不會 加油吧
有一天你發現你又甚麼都會了 繼續
有一天你發現你甚麼都不會了 成功了 ......

C语言数组


在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结� ......

C的历史

C的由来
C语言是由UNIX的研制者Dennis Ritchie和Ken Thompson于1970年研制出的B语言的基础上发展和完善起来的.
C的特点
C语言是一种面向过程的语言,同时具有汇编语言和高级语言的优点.C语言可以广泛应用于不同的操作系统,如UNIX,DOS,Windows及Linux等.
C的发展
1973年,C语言第一次被用来编写操作系统(Unix)的内核.Denn ......

栈的C实现(stack)

rows="2" cols="20" id="ctl00_ctl00_cphContent_cphDoc_EntryEditor1_richTextEditor" class="mceEditor" style="height:450px;width:100%;">
栈是数据结构中最基础也是最经典的数据结构,无论在应用还是操作系统中均可以看到其身影。栈是一种特殊的
线性表,即限制在表的一端进行插入、删除运算。通常插入、删除的一端� ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号