Python 庫簡介

934 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
934
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Python 庫簡介

  1. 1. 特别策划 Features 单独定义一个XML 文件。同样,借助 强大的动态能力,SQLObject 还拥有 一个Hibernate所远不及的功能,那就 是 SQLObject 的映射类可以在运行时 动态改变自身结构,这也意味着数 据库中的表结构也可以在运行时进 行改变。总之,对Hibernate略有了解 的开发者均能迅速理解 SQLObject。 虽然我一直认为 SQLObject 还远 未能将 Python 的动态能力发挥到极 致。不过这却是一个良好的开始。也 许我们可以在不久将来看到更多更 具新意的 O/R mapping 工具。 TurboGear Python 库简介 自 RoR(Ruby on Rails)在 Web 开 发领域一夜成名后,在其它语言社 区,跟风之作也如雨后春笋一般涌 □ 文 / 汤韬 现出来。虽然TurboGear并非刻意模仿 RoR 之作,不过它确确实实借着 RoR 流行潮流得到更多人的重视。  “俗话”说:库即是语 需考虑库的各种兼容性问题。Python 与 RoR相同,TurboGear也是一个言,语言即是库。由此可见拥有一套 社群对于库的重视可见一斑。 轻量级Web开发套件,通过几个命令高质量、具备良好可复用库对于一 即便是拥有如此多的标准库。 行工具能够快速生成以数据库为核门通用开发语言来说有多重要。这 这也似乎未能阻止Python社群的开发 心的基本框架代码。典型的 R o R 思也的难怪“C + + 老爹”B j a r n e 者们天马行空般的思维。借助于动 想!这和许多开源框架的原则一样Stroustrup 逢人就大倒苦水:C++的库 态语言简洁、优雅、灵活的表达能 ——“避免重新发明轮子” TurboGear 。还是太少,C++社群需要开发更多高 力,这些第三方的库经常展现出令 的 Web 控制层使用 CherryPy;持久层质量的库出来! 人赞叹的想象力。 使用 SQLObject;模板使用 Kid;AJAX 还好,为Python语言开发一套质 好吧,现在让我们在庞大的Py- 使用 MochiKit。几乎所有的重要的功量不错的库的复杂程度远没有 C++ thon库选取点滴,也许它能带给我们 能组件都源自第三方。TurboGear自身来得复杂。而且Python社区同样也深 一些另类的思考。 更像一个黏合剂,把所有的功能组知库的重要性。结果就是Python的发 合在一起,并能够形成力量的倍增。行版即奉上超过300个的标准库(这 SQLObject还不包括专门针对 Mac 机的 50 余个 SQLObject 可以看做是 Python 领 4Suite库,谁让那小子另类呢)。 域的 Hibernate。它也是目前 python社 虽然 Python 标准库提供了 XML 300 多个库中,绝大部分具备跨 区中最为成熟方便的O/R mapping工 处理工具,但是它只提供一些基本平台能力(*NIX/Windows) 这些库 。 具。和Hibernate相比,SQLObject 利用 功能。如果你想获得更为强大的XML覆盖了开发的方方面面,Python语言 了动态语言的独有特性,通过灵活使 处理能力,4Suite是一个更好的选择。的用户可以在一个典型命令行环境 用继承、灵活使用 MetaData能力,能 4Suite被称为XML 工具中“内行下(比如Linux Shell) 仅仅利用标准 , 够快速方便定义直接在程序中定义 的选择” 除了最基本的Dom-Like和 。库即可完成绝大部分工作,同时无 映射类,不用像 Hibernate中那样还需 SAX-Like 处理库外,4Suite 还提供62 程序员
  2. 2. >>>  程序员开源手册XInclude,XPointer,XLink,XPath, 步网络服务器(所以它也被成为Py- 升整个应用的性能,在某些环境中XUpdate 用于XML 文档的查询、更新 thon中ACE,如果你还不知道什么是 甚至能将速度提升一个数量级。操作等等;提供XSLT完整处理能力。 ACE,那么看看前面关于C++库的文 虽然Psyco还不能视为一个真正 4Suite不光功能强大,性能也相 章),这是目前为止性能最好的网络 意义上的 JIT 的引擎,也无法像 Java当不错。这主要是得益于其核心代 处理模型。也许是非阻塞异步处理 中的 JIT 那样提供完全透明的服务。码部分采用C完成。这在需要处理大 的天生复杂性所致,Twisted 几乎是 但我们仍然要为Psyco的发展感到振量 XML 文档的地方,4Suite实在是一 我所见过的最复杂,最难用的Python 奋。目前,在其最新版本中,只需两个完美的选择。 库。Twisted 的使用者需要面对大量 行代码的添加,就能使你的程序充 新的概念和新的模式 ,这一点上和 分使用 Psyco,从而提升性能。 Pyro ACE 倒颇有几分相似。 Pyro 的全称是“Python Remote 陡峭的学习曲线,阻碍了很多 wxPythonObjects”。按照字面即可理解 Pyro 的 人掌握 Twisted 库。这也许是想要获 在许多人眼里,动态语言/脚本功能:提供远程对象。Pyro 为Python 得高性能所付出的必要代价 。难怪 语言一般仅适合完成命令行或 WEB语言提供异常简洁的 RPC 解决方案。 O’REYLLI在其出版的关于Twisted的 的工作,而在桌面开发方面实在是 其实 Python 语言中不乏一些更 书的封面引用了一只九头怪蛇,还 丑陋不堪。而 wxPython 的出现无疑加通用的远程调用方案,例如都是 真是贴切。 是给这种偏见以有力的回击。基于 XML 的 XMLRPC和 SOAP。那么 w x P y t h o n 实际上发展多年的Pyro这样的单纯的Python远程调用方 C++ 框架 wxWindow (现已更名为案具有什么样的优势呢?那就是性 w x W i d g e t s)的 P y t h o n 封装。而能与易用性。 wxWindow的目标是建立一个跨平台 由于动态语言具有强大反射能 的 GUI 框架。wxWindow 现已能在力,因此实现对象序列化对于Python Windows/Unix/Mac 上良好运行。自来说简直易如反掌。对象的序列化 然wxPython也能横跨上述几个平台。在 Python中被称为 pickle,这是许多 wxPython 使用的原生窗口。这就Python应用的核心机制。Pyro 也正是 Psyco 意味着使用wxPython 开发的GUI 和操充分利用 pickle 的威力,在网络间提 赞美Python的好话可以说一箩筐, 作系统本地 GUI 系统在界面外观上没供远程对象的调用。它的性能要远 那么它的缺点是什么?这还用问吗,当 有任何区别。如果和Java中GUI库对比远超过使用 XML 对远程对象进行编 然是性能。 性能——已经成为Python根 一下,就可以发现,wxPython 更加类码 / 解码。同时,它在接口调用设计 深蒂固的老毛病了。不要说和C++/ 似 SWT 而不是Swing。因为SWT也是上也非常简洁。在服务器端和客户 Java/C#这样的语言相比,即使是和它 使用的原生窗口,想想Eclipse 的界面端只需 2、3 行代码就完成对象的封 的同门兄弟们——Ruby、Perl、PHP 这 有多漂亮就知道原生窗口的优势了。装与调用,远比SOAP来得简单轻松。 样的脚本语言相比,Python的性能依然 虽然不少C++爱好者对wxWindow 是最糟糕的。 Python的设计者们似乎仅 框架的设计颇有微词,不过在经过 Twisted 仅在乎语言机制的完美,几乎不考虑性 Python的封装后,没有了指针、没有了 上个月,Zope 3.2发布, 在这个最 能。CPythony 引擎已经发展了这么多 MFC时代的事件机制,wx框架的易用新版中, 一个重要的变化就是:使用 年,查看其源代码,性能优化代码少之 性获得了极大提升。这也是Python的另了近十年的处理Web请求的网络框架 又少。对象引用模型至今还在使用引 一个巨大魅力所在。代码被放弃,取而代之是以Twisted 为 用计数器的方式,至于发展一个 JIT 引 作者介绍:核心实现的代码。据称这样可以改善 擎,算了吧,不要指望了。 汤韬,OSDN(www.osdn.net.系统性能以及可扩展性。于是Twisted 还好,Psyco 的出现,带给我们 cn)网站开发主管,对 Linux以及库再一次成为了人们关注的焦点。 了一线希望。Psyco 通过将运行中字 开源技术拥有广泛兴趣,喜好 Twisted 的核心概念是非阻塞异 节码编译为二进制代码从而大幅提 Python、Ruby 等动态语言。 Programmer 63

×