`

正在与python恋爱

 
阅读更多

这是一篇来自 http://developer.51cto.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的另一个巨大魅力所在。

分享到:
评论

相关推荐

    基于Python实现的恋爱神器,Python实现自动向女朋友微信发送关心问候示爱信息

    本项目“基于Python实现的恋爱神器”就是这样一个创新的应用,利用Python的便利性来为情侣间的互动增添科技色彩。通过自动向女朋友的微信发送关心、问候以及示爱的信息,它能够帮助忙碌的恋人保持情感的连结,即使在...

    html恋爱爱心代码+python

    这个压缩包文件的主题是“html恋爱爱心代码+python”,结合描述中的“python满屏飘爱心代码”,我们可以推测这是一份利用Python和HTML来创建浪漫效果的代码示例。接下来,我们将详细探讨如何用这两种语言来制作满屏...

    界面小游戏(python)

    这些模块可能代表着不同类型的互动或挑战,旨在展示如何通过GUI实现用户与程序的交互。 - **'谈恋爱'**:这部分可能涉及用户输入情感选择或者进行简单的对话模拟,展示了如何处理用户的输入并根据输入做出响应。 ...

    老男孩python 四期

    1、Python模块的介绍与使用 2、常用模块介绍 3、Pickle 序列化(实现内存数据在不同程序间共享) 4、自定制模块 5、异常处理,try….except 6、自定义异常类 7、Python函数概念、语法 8、函数参数 10、函数处理多个...

    python easyGui中文学习文档

    choices = ["谈恋爱", "编程", "OOXX", "琴棋书画"] choice = g.choicebox(msg, title, choices) if choice is not None: # 如果用户没有取消选择 g.msgbox("你的选择是:" + str(choice), "结果") msg = ...

    配套“编译v8引擎”文章使用 python26

    本文将深入探讨如何使用Python2.6来配合编译V8引擎,以便更好地理解其工作原理和优化JavaScript执行性能。 一、V8引擎简介 V8引擎以其高效的即时编译(JIT)技术闻名,它将JavaScript代码直接编译成机器码,从而...

    恋爱话术小程序源码-土味情话,恋爱导师支持多种流量主模式

    总之,恋爱话术小程序源码是一个结合了娱乐与实用性的项目,它不仅提供了轻松有趣的交流工具,还包含了丰富的恋爱知识和变现策略,对于想要在情感领域创业或改进产品的人来说,是一个值得研究的宝贵资源。

    恋爱话术前后双端源码带10万数据.zip

    9. **实时更新与推送**:为了保持内容的新鲜度,源码可能包含更新机制,允许添加新的恋爱话术,并通过推送通知告知用户。 10. **测试与调试**:源码中应包含完整的测试用例和调试工具,确保软件在不同环境下的稳定...

    恋爱话术小程序源码.rar

    最后,`恋爱话术小程序源码` 目录很可能是整个项目的源代码,其中包含了所有必要的编程文件,如前端界面的代码(如React、Vue或微信小程序)、后端服务代码(如Node.js、Python的Flask或Django)、以及可能的配置...

    全面系统的Python基础教程

    读者可能会对多个方面抱有疑问,其中常见的问题包括:学习Python之后的发展前景和收入状况、行业的辛苦程度、零基础是否可以开始学习、学习过程中的困难以及入门和成为专家所需的时间、是否会导致脱发、恋爱关系的...

    撩妹攻略话术恋爱小程序源码分享

    恋爱小程序是一种基于移动互联网的社交工具,它通常包含各种情感交流策略、约会技巧以及互动功能,旨在帮助用户提升情感沟通能力,增加与心仪对象交往的成功率。本资源分享的是一个专门用于撩妹的恋爱话术小程序的源...

    恋爱周年纪念日-送给女友的网页

    标题 "恋爱周年纪念日-送给女友的网页" 暗示了这个项目是一个情感化的Web应用,可能是使用Python、HTML和Flask框架构建的。这是一个典型的小型Web开发实例,适用于初学者或想要为特殊日子创造个性化体验的人。让我们...

    2021年新版微信端恋爱小程序

    在“恋爱微信小程序”中,后端可能采用了如Java、Python或Node.js等语言进行开发,构建RESTful API接口,提供数据服务。数据库设计是后端的核心,可能包括用户信息、聊天记录、匹配算法等多个表,确保数据的安全性和...

    男女恋爱情书自动生成器

    在IT领域,这样的应用开发通常涉及编程语言(如Python、Java或C#),以及可能的数据挖掘、自然语言处理和人工智能技术。数据挖掘用于收集和分析用户信息,自然语言处理用于理解和生成情书内容,而人工智能则可能用于...

    情侣恋爱表白天数.zip

    "情侣恋爱表白天数.zip"这个压缩包就是一个很好的例子,它包含了一个能够计算恋爱天数的小程序。这个程序的核心目标是帮助情侣们记录他们在一起的美好时光,通过计算两人的开始日期到现在的总天数,为他们的爱情增添...

    if...else...恋爱代码

    恋爱代码”是一个有趣的比喻,它用编程术语来讨论人类情感,提醒我们在理解人与人之间的关系时,不能仅凭单一条件就做出决定,而应充分考虑各种复杂因素。在编程中,我们需要谨慎设计逻辑,而在生活中,我们也需用心...

    恋爱话术小程序源码,微猫恋撩术V2 4.1.0 小程序-多开.zip

    可能使用的语言有PHP、Python、Java等,与微信小程序通过API接口进行交互。 为了充分利用这个源码,开发者需要具备以下技能: - 熟悉JavaScript,包括ES6语法和Promise、Async/Await等特性。 - 理解微信小程序开发...

    Pythonweb后端开发框架Django、Flask、Tornado

    服务器、Web、游戏、爬虫、数据分析以及人工智能学习之路还很长技术之路不能回头陷进去就出不来就跟恋爱一般,学习中、项目中印象笔记、有道云笔记、Onenote都记了好多Python属于面向对象解释型高级动态计算机程序...

    恋爱话术小程序源码-土味情话 恋爱导.zip

    恋爱话术小程序源码是为帮助用户提升情感交流技巧,特别是针对情侣间的互动而设计的。这个源码可能包含了各种“土味情话”和恋爱建议,以吸引用户并提供娱乐性内容。从描述中我们可以推测,这个小程序不仅提供情话,...

    恋爱表白源码

    【恋爱表白源码】是一种创意且浪漫的方式,用于在特殊的日子如女友的生日或纪念日向心爱的人表达情感。这种源码通常包含了精心设计的程序,能够通过计算机或者手机应用展示出富有心意的表白信息,甚至可能伴有音乐、...

Global site tag (gtag.js) - Google Analytics