BT编程的王者——Python开发工具

编程爱好者

如今网络上最火爆的下载方式是什么呢?大家也许能异口同声地说出——BT!今天,寇豆就向大家介绍鼎鼎大名的BitTorrent的开发工具Python。用Python,15行代码就可以写出一个P2P实用程序,这是不是会让你产生学习的冲动呢?

Python的发明人Guido van Rossum:丰富的语法带来的负担往往多于帮助。Python是一种高级解释型语言,其语法简单易懂,而面向对象的语义功能强大,却又灵活随意。Python几乎适用于每一种计算机平台,并且在平台间具有很强的可移植性。相信Python会成为初学者最容易上手的编程语言。

走近Python

诞生于1990年的Python是一种面向对象的、具有动态语义特征的解释型程序设计语言,也是一个著名的开源项目,由Python 软件基金会按照GNU公共许可协议对它进行管理和推广。Python最初是运行在Amoeba分布式操作系统上的脚本语言,后经过众多程序员的努力,它被成功地移植到Windows、Mac OS、Unix、Linux等主流平台上,现在更进一步拓展到PalmOS、Windows CE、Pocket PC等移动平台中。

Python的代码非常清晰,并有严格的编码规则,加之无需编译即可执行脚本,是一门既易于学习又便于交流的编程语言。Python另一大优点是它惊人的应用软件开发速度,这得益于众多程序员为它开发的功能强大的扩展标准库,它使程序员从烦琐的底层开发中摆脱出来,从而大大提高了开发效率。当然,Python在性能上也不输于任何一款主流开发工具,它能开发几乎所有类型的软件,即使是.Net项目,在IronPython的帮助下它照样有良好的表现。尤为可贵的是,实现同样的功能,Python的代码比C++、Java等更为简洁,Felten博士仅用15行Python代码就编成一个实用的P2P程序即是明证。Python支持平台之全亦令人称道,在这点上也许只有Java才能望其项背。作为开源项目,Python及其诸多类库、辅助工具都是免费的,而且更新速度很快,这也是令许多程序员为之心动的地方。

Python尽管很优秀,但以往在C++、Java等强势编程语言的阴影下,很难成为主流的开发工具。真正让Python声誉鹊起的是火爆网间的新型下载软件BitTorrent,它是Bram Cohen利用Python编写的,而且公开了源码。BT独特的下载方式吸引了众多程序员对它进行研究,于是Python也渐为大家认识和喜爱。

借助Python代码简洁的特点和功能强大的扩展标准库,用它开发类似BT这样的P2P程序将非常容易。

由于Python是解释型语言,因此程序的运行速度不如编译型的快。不过当前主流硬件的计算能力已今非昔比,两者在运行速度上的差距基本上可忽略不计。

如何学习

Python是一种类似DOS批处理、UNIX shell程序的脚本语言,它不像其他语言那样必须先编译再执行,而是在Python环境中实时执行输入的每条语句并立即输出结果,这非常适合初学者快速入门。初学者可以对Python的各种元素反复试验以达到透彻了解,从而大大降低了Python的门槛,使Python像VB一样具有大众编程工具的特征。

由于在Python中很容易访问或动态地修改正在运行的程序,使程序的调试和纠错过程大为简化,从而快速地完成编程工作,使初学者在很短时间内就能欣赏到自己的编程作品,这对保持初学者的学习耐心非常有帮助。另外,Python的语法结构十分明晰,可读性很强,大大地方便了对优秀源代码的揣摩和学习。Python还支持模块和包,对程序模块化和代码重用提供了很好的解决方案,从而使初学者能够共享网上丰富的开发资源,完成以一已之智慧难以完成的任务。

对C++、Java等程序员而言,学习Python将是一件简单的事情,因为Python在整体架构上同C++、Java等十分相似,甚至许多语法都毫无二致。而且Python具有良好的扩展性,可以调用其他语言开发的函数库,同时它还可以嵌入到其他编程语言中,以充分发挥各自的特长,这也是许多程序员投到Python门下的重要原因。

Python开发包由解释器、标准库和辅助工具组成,其最新版本为2.41,可以在Python官方网站http://www.python.org/上免费下载。除官方开发包外,一些公司和组织还推出了增强型Python开发工具和标准库,比较有名的有ActivePython、wxPython、Python Imaging Library和Jython等。ActivePython对标准Python开发包作了扩充,附带了更大的资源库和更强的IDE集成开发编程环境。WxPython支持跨平台的C++框架,内含功能强大的GUI开发包,同Python内置的GUI标准库Tkinker一样,都是开发Windows程序的利器。Python Imaging Library(PIL)使Python具有了强大的图像处理能力。Jython是用Java编写的Python解释器,它将Python和Java两种语言很好地融为一体,使Java程序员也能享受到Python快速开发的好处。

Python编程示例

网上Python源码很多,包括BitTorrent等著名软件的源码都能轻易找到,掌握了Python编程基础知识的朋友不妨下载回来仔细揣摩,一定会大有收获。这里给出一个只有11行代码的小程序,以使大家对Python的特点有所了解。

#引用Tkinter(图形界面)、tkMessageB

ox(对话框)和socket(网络)标准库

from Tkinter import *

from tkMessageBox impor *

import socket

#调用socket标准库的gethostname()和gethostbyname(a)函数读取机器名和IP地址

a=socket.gethostname()

b=socket.gethostbyname(a)

#定义事件处理函数:用对话框显示机器名和IP地址

def button_click():

showinfo('Netware Options',a+'\n'+b)

#创建窗口对象

root=Tk()

#生成按钮并设置Click()事件调用函数

c=Button(root,text = ' Get ',command = button_click)

c.pack(side = TOP)

#窗口消息循环

root.mainloop()

将以上代码存为GetIP.py,然后在命令行执行“Python GetIP.py”(不带引号),程序即可运行。当然也可在IDE中编辑和保存,然后按F5运行,运行结果如图所示。

26-g16-1-1.jpg

如果要生成独立运行的可执行文件,需要借助py2exe标准库,该标准库可在sourceforge.net下载。以GetIP.py为例,编辑setup.py文件如下:

from distutils.core import setup

import py2exe

setup(windows=["GetIP.py"])

然后执行“Python setup.py py2exe”命令,即可在当前文件夹的dist子文件夹中生成GetIP.exe、 python23.dll和library.zip三个文件。

在不难看出,Python确实在代码的简洁上高出其他编程语言一筹,而且很容易看懂,看来易学易用的快速开发工具的名声确非虚传。

学习资源推荐

伴随着Python的日益流行,各种Python学习书籍也竞相出笼。尽管Python编程书已多得让人看花眼,但笔者认为下面三本书对初学者比较合适。

《Python 2.1宝典》,电子工业出版社出版,定价59元。该书由Python专家Dava Brueck和Stephen Tanner合著,全面介绍了Python编程的各个方面。既有为初学者准备的入门知识,也有供中高级Python程序员参考的高级技术介绍,堪称Python编程大全。不过,也许由于译者对Python的理解不够,有些章节翻译得如同雾里观花。

《Python与Tkinter编程》,国防工业出版社出版,定价66元。Tkinter是Pyhton的内置的GUI开发工具包,用它可以快速地开发出可以运行在Windows等多种平台下的Python应用程序。该书真正有价值的地方不在于对Python编程的介绍,而在于详细讨论了Tkinter的各种开发方法。由于大多数Python编程书籍都只对Tkinter作简单介绍,因此这本专门讨论Tkinter开发的书就显得弥足珍贵,故予以特别推荐。

《Python编程完全手册》,清华大学出版社出版,定价54元。这是一本很有参考价值的Python编程手册,几乎囊括了Python开发的方方面面,对各个层次的程序员都很有用处。

网上有关Python编程的站点很多,这里向大家推荐几个:

http://www.python.org:Python的官方站点。

http://www.activestate.com:知名的Python开发商,ActivePython就是出自它的门下。

http://www.wxpython.org:广受欢迎的Python开发工具wxpython的官方站点。

http://www.pythonware.com:图形处理标准库Python Imaging Library的开发商。

http://www.python.cn:Python中文社区,是国内Python程序员的聚集地,常有高人出没其间。