设为首页 收藏本站
查看: 959|回复: 0

[经验分享] 正在与python恋爱

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2017-4-24 11:14:49 | 显示全部楼层 |阅读模式
  这是一篇来自 http://developer.iyunv.com/art/201003/187419.htm 的资讯,有些内容需要更新,晚些更新吧。
  3年前python已经有如此之多漂亮的库,现在,当然不在话下了,好吧,先回顾一下庞大的Python库,选取点滴,也许它能带给我们一些另类的思考。


SQLObject

SQLObject 可以看做是Python领域的Hibernate。它也是目前python社区中最为成熟方便的O/R mapping工具。和Hibernate相比,SQLObject 利用了动态语言的独有特性,通过灵活使用继承、灵活使用MetaData?能力,能够快速方便定义直接在程序中定义映射类,不用像Hibernate中那样还需单独定义一个XML文件。同样,借助强大的动态能力,SQLObject 还拥有一个Hibernate所远不及的功能,那就是SQLObject 的映射类可以在运行时动态改变自身结构,这也意味着数据库中的表结构也可以在运行时进行改变。总之,对Hibernate略有了解的开发者均能迅速理解SQLObject。虽然我一直认为SQLObject 还远未能将Python 的动态能力发挥到极致。不过这却是一个良好的开始。也许我们可以在不久将来看到更多更具新意的O/R mapping 工具。

TurboGear?Django!

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。

4Suite

虽然Python 标准库提供了XML处理工具,但是它只提供一些基本功能。如果你想获得更为强大的XML 处理能力,4Suite是一个更好的选择。

4Suite被称为XML工具中“内行的选择”。除了最基本的Dom-Like和SAX-Like处理库外,4Suite 还提供XInclude,XPointer,XLink,XPath,XUpdate用于XML文档的查询、更新操作等等;提供XSLT完整处理能力。

4Suite不光功能强大,性能也相当不错。这主要是得益于其核心代码部分采用C完成。这在需要处理大量XML文档的地方,4Suite实在是一个完美的选择。

Pyro

Pyro 的全称是“Python Remote Objects”。按照字面即可理解Pyro 的功能:提供远程对象。Pyro 为Python语言提供异常简洁的RPC解决方案。其实Python语言中不乏一些更加通用的远程调用方案,例如都是基于XML 的XMLRPC和SOAP。那么 Pyro这样的单纯的Python远程调用方案具有什么样的优势呢?那就是性能与易用性。

由于动态语言具有强大反射能力,因此实现对象序列化对于Python来说简直易如反掌。对象的序列化在Python中被称为pickle,这是许多Python应用的核心机制。Pyro 也正是充分利用pickle 的威力,在网络间提供远程对象的调用。它的性能要远远超过使用XML 对远程对象进行编码/解码。同时,它在接口调用设计上也非常简洁。在服务器端和客户端只需2、3 行代码就完成对象的封装与调用,远比SOAP来得简单轻松。

Twisted

上个月,Zope 3.2发布,在这个最新版中, 一个重要的变化就是:使用了近十年的处理Web请求的网络框架代码被放弃,取而代之是以Twisted 为核心实现的代码。据称这样可以改善系统性能以及可扩展性。于是Twisted库再一次成为了人们关注的焦点。 Twisted 的核心概念是非阻塞异步网络服务器(所以它也被成为Python中ACE,如果你还不知道什么是 ACE,那么看看前面关于C++库的文章),这是目前为止性能最好的网络处理模型。也许是非阻塞异步处理的天生复杂性所致,Twisted 几乎是我所见过的最复杂,最难用的Python库。Twisted 的使用者需要面对大量新的概念和新的模式,这一点上和ACE 倒颇有几分相似。陡峭的学习曲线,阻碍了很多人掌握Twisted 库。这也许是想要获得高性能所付出的必要代价。难怪 O’REYLLI在其出版的关于Twisted的书的封面引用了一只九头怪蛇,还真是贴切。

Psyco

赞美Python的好话可以说一箩筐,那么它的缺点是什么?这还用问吗,当然是性能。性能——已经成为Python根深蒂固的老毛病了。不要说和C++/Java/C#这样的语言相比,即使是和它的同门兄弟们——Ruby、Perl、PHP 这样的脚本语言相比,Python的性能依然是最糟糕的。Python的设计者们似乎仅仅在乎语言机制的完美,几乎不考虑性能。CPythony 引擎已经发展了这么多年,查看其源代码,性能优化代码少之又少。对象引用模型至今还在使用引用计数器的方式,至于发展一个JIT 引擎,算了吧,不要指望了。还好,Psyco 的出现,带给我们了一线希望。Psyco 通过将运行中字节码编译为二进制代码从而大幅提升整个应用的性能,在某些环境中甚至能将速度提升一个数量级。虽然Psyco还不能视为一个真正意义上的JIT 的引擎,也无法像Java中的JIT 那样提供完全透明的服务。但我们仍然要为Psyco的发展感到振奋。目前,在其最新版本中,只需两行代码的添加,就能使你的程序充分使用Psyco,从而提升性能。

wxPython

在许多人眼里,动态语言/脚本语言一般仅适合完成命令行或WEB的工作,而在桌面开发方面实在是丑陋不堪。而wxPython的出现无疑是给这种偏见以有力的回击。

wxPython 实际上发展多年的C++框架wxWindow(现已更名为wxWidgets)的Python封装。而 wxWindow的目标是建立一个跨平台的GUI 框架。wxWindow 现已能在Windows/Unix/Mac 上良好运行。自然wxPython也能横跨上述几个平台。

wxPython 使用的原生窗口。这就意味着使用wxPython 开发的GUI 和操作系统本地GUI 系统在界面外观上没有任何区别。如果和Java中GUI库对比一下,就可以发现,wxPython 更加类似SWT 而不是Swing。因为SWT也是使用的原生窗口,想想Eclipse 的界面有多漂亮就知道原生窗口的优势了。

虽然不少C++爱好者对wxWindow框架的设计颇有微词,不过在经过Python的封装后,没有了指针、没有了 MFC时代的事件机制,wx框架的易用性获得了极大提升。这也是Python的另一个巨大魅力所在。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-368581-1-1.html 上篇帖子: [笔记]Python对象基础 下篇帖子: Python模拟MapReduce的流程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表