Python整合C语言模块.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:16 大小:137KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Python整合C语言模块.doc

Python整合C语言模块.doc

预览

免费试读已结束,剩余 6 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

加速程序开发Python整合C语言模块(1)本文通过实例研究如何在Python程序中整合既有的C语言模块,包括用C语言编写的源程序和动态链接库等,从而充分发挥Python语言和C语言各自的优势。Python是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问,对媒体文件的访问等。而作为软件开发的传统编程语言C语言,却能在这些问题上很好地弥补Python语言的不足。51CTO推荐阅读:HYPERLINK"http://developer.51cto.com/art/201004/196559.htm"\t"_blank"专访豆瓣网首席架构师洪强宁:Python,简单的力量概览Python是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问,对媒体文件的访问等。而作为软件开发的传统编程语言——C语言,却能在这些问题上很好地弥补Python语言的不足。因此,本文通过实例研究如何在Python程序中整合既有的C语言模块,包括用C语言编写的源程序和动态链接库等,从而充分发挥Python语言和C语言各自的优势。Python语言的特点Python作为一门程序开发语言,被越来越多地运用到快速程序开发。Python是一种解释型的,互动的,面向对象的编程语言,它包含了模块化的操作,异常处理,动态资料形态,以及类型的使用。它的语法表达优美易读,具有很多优秀的脚本语言的特点:解释的,面向对象的,内建的高级数据结构,支持模块和包,支持多种平台,可扩展。而且它还支持交互式方式运行,图形方式运行。它拥有众多的编程界面支持各种操作系统平台以及众多的各类函数库,利用C和C++可以对它进行扩充。C语言的特点C语言作为最受人们欢迎的语言之一,有广泛的发展基础。简洁紧凑、灵活方便,功能强大是其特点。另外,C语言是一门中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。由于可以直接访问物理地址,可以方便的对硬件进行操作。因此,很多的系统软件都是由C语言编写。Python语言与C语言的交互为了节省软件开发成本,软件开发人员希望能够缩短的软件的开发时间,希望能够在短时间内开发出稳定的产品。Python功能强大,简单易用,能够快速开发应用软件。但是由于Python自身执行速度的局限性,对性能要求比较高的模块需要使用效率更高的程序语言进行开发。例如C语言,系统的其他模块运用Python进行快速开发,最后将C语言开发的模块与Python开发的模块进行整合。在此背景下,基于Python语言与C语言的各自特点,用C语言来扩展现有的Python程序,显得很有意义。本文首先介绍几种常用的整合Python程序与C语言程序的方法,最后给出相应的实例。利用ctypes模块整合Python程序和C程序ctypes模块ctypes是Python的一个标准模块,它包含在Python2.3及以上的版本里。ctypes是一个Python的高级外部函数接口,它使得Python程序可以调用C语言编译的静态链接库和动态链接库。运用ctypes模块,能够在Python源程序中创建,访问和操作简单的或复杂的C语言数据类型。最为重要的是ctypes模块能够在多个平台上工作,包括Windows,WindowsCE,MacOSX,Linux,Solaris,FreeBSD,OpenBSD。接下来通过几个简单的例子来看一下ctypes模块如何整合Python程序和C程序。加速程序开发Python整合C语言模块(2)本文通过实例研究如何在Python程序中整合既有的C语言模块,包括用C语言编写的源程序和动态链接库等,从而充分发挥Python语言和C语言各自的优势。源代码层面上的整合利用Python本身提供的ctypes模块可以使Python语言和C语言在源代码层面上进行整合。本节介绍了如何通过使用ctypes库,在Python程序中可以定义类似C语言的变量。下表列出了ctypes变量类型,C语言变量类型和Python语言变量类型之间的关系:表1.ctypes,c语言和Python语言变量类型关系表1中的第一列是在ctypes库中定义的变量类型,第二列是C语言定义的变量类型,第三列是Python语言在不使用ctypes时定义的变量类型。举例:清单1.ctypes简单使用>>>fromctypesimport*#导入ctypes库中所有模块>>>i=c_int(45)#定义一个int型变量,值为45>>>i.value#打印变量的值45>>>i.value=56#