- Python概述
Python 是一种
面向对象、解释型
计算机程序设计语言,由
Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python具有丰富和强大的库。它常被昵称为
胶水语言,能够把用其他语言制作的各种模块(尤其是C/
C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如
3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
Python已经成为最受欢迎的程序设计语言之一。2011年1月,它被
TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,Python的使用率是呈线性增长。
2015年12月开始更是一跃成为第四名。Python成了当前脚本事实上的标准。这得益于Python的语法简单,能进行全栈开发。
如果把Python看做一把武器,他应该是这样的:
一言以蔽之,Python就是
库多库多库多(重要的事情说三遍)。
- Python语言的应用场景
- 系统编程:提供API进行系统维护和管理,系统管理员的御用利器。支持线程与进程、IO复用、日期与时间处理、调用系统函数、写日记(log)等功能。
- 图形处理:有PIL和Tkinter等
- 数学计算:NumPy提供大量与标准数据库的接口
- 文本处理:提供re模块能支持正则表达式
- 数据库编程:Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。
MySQLdb用于连接MySQL数据库。
- 网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。提供SSL加密通信、异步网络通信等功能。
- 多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
- Web编程:支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多种网络协议,并提供了编写网络服务器的框架W3C格式支持,包含HTML,SGML,XML的处理。还有Django等 Web应用框架。
- Python中调用C/C++程序
很多情况下可能需要结合Python的开发效率和C/C++的运行效率,此时就涉及到跨语言调用,将C/C++代码做成一个基础的组件供python去调用。
本文初步介绍一下几种方案,详细讲解第三种方案。
具体参考Python官网文档
https://docs.python.org/2/c-api/intro.html
该方法比较原始,但是很灵活
- Python 通过Boost.Python调用C++
- 不仅可以封装函数,还能封装类及其成员函数
示例ubuntu 14.04上进行安装的命令
源码如下
将刚刚编写的示例代码编译成.so文件
调用python解释器进行测试