Python语言是不被大多数人知道的东西,这里就简单概述下Python语言,顺便闲谈一

下Python

标准库。“俗话”说:库即是语言,语言即是库。由此可见拥有一套高质量、具备良好可复用库对于一门通用开发语言来说有多重要。这也的难怪“C + +

老爹”BjarneStroustrup? 逢人就大倒苦水:C++的库还是太少,C++社群需要开发更多高质量的库出来!

还好,为Python语言开发一套质量不错的库的复杂程度远没有C++来得复杂。而且Python社区同样也深知库的重要性。结果就是Python

的发行版即奉上超过300个的标准库(这还不包括专门针对Mac机的50 余个库,谁让那小子另类呢)。 300

多个库中,绝大部分具备跨平台能力(*NIX/Windows)。这些库覆盖了开发的方方面面,Python语言的用户可以在一个典型命令行环境下(比如

Linux Shell),仅仅利用标准库即可完成绝大部分工作,同时无需考虑库的各种兼容性问题。Python社群对于库的重视可见一斑。

即便是拥有如此多的标准库。这也似乎未能阻止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?

自RoR(Ruby on

Rails)在Web开发领域一夜成名后,在其它语言社区,跟风之作也如雨后春笋一般涌现出来。虽然TurboGear?并非刻意模仿RoR

之作,不过它确确实实借着RoR流行潮流得到更多人的重视。与RoR相同,TurboGear?也是一个轻量级Web开发套件,通过几个命令行工具能够快

速生成以数据库为核心的基本框架代码。典型的RoR 思想!这和许多开源框架的原则一样——“避免重新发明轮子”。TurboGear?的Web

控制层使用CherryPy?;持久层使用SQLObject;模板使用Kid;AJAX使用MochiKit?。几乎所有的重要的功能组件都源自第三

方。TurboGear?自身更像一个黏合剂,把所有的功能组合在一起,并能够形成力量的倍增。

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语言经验总结相关推荐

  1. python语言最适合的领域_掌握python语言可以做什么?十大应用领域介绍

    python作为一门当下极其火爆的编程语言,得到世界范围内无数编程爱好者和开发者喜欢并不是偶然的,除了要比其他编程语言更容易入门,python还拥有无比广阔的应用前景,薪资待遇也非常不错. 1. WE ...

  2. python语言设计学习方向_学好Python开发就业方向有哪些?

    原标题:学好Python开发就业方向有哪些? 近年来,Python市场火爆,从业人员薪资不断增加,选择学Python的人也在逐年增多.然而,很多人学Python只是盲目的跟随潮流,对于Python却不 ...

  3. python语言程序的特点_《Python语言程序设计》 —1.1.3 Python的特点及应用领域...

    1.1.3 Python的特点及应用领域 学习一门编程语言,应该了解其特点及适用领域.Python语言的特点及应用领域如下. 1. 特点 (1)优点 简单易学:在开发者社群流行着一句玩笑-" ...

  4. python是脚本还是编程语言_关于Python是不是脚本语言的探讨

    很多人认为Python是单纯的脚本语言,认为它是一门简单的语言.其实,脚本语言并不是所谓的简单,而是简洁.Python可以使得一些复杂的编程任务变得简单而不是简单的编程语言.所以要是给Python一个 ...

  5. python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...

    [摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...

  6. python可以做特效吗_学习mel语言,Python,JavaScript到什么程度才能做一下大型特效,要自已开发插件脚本呢?...

    感谢邀请.首先自己要在某一方面要擅长,认准一个定位. 比如android是钥匙做前端应用软件的,python可以做爬虫及其人工智能,js做全段网页,java主要是做后端的 1.我们程序员对于开发软件来 ...

  7. python语言是编译执行_加速Python运行的工具

    加速Python运行的工具应用 如果你需要让你的Python程序加速运行,在不同的层次有一些不同的解决方案: 重写 你的 Python 代码, 通过 并行化parallelizing 和 优化opti ...

  8. python语言程序设计实验题_《Python语言程序设计》测验题目

    Python语言程序设计测验题目 在MOOC网学习Python语言程序设计 课程,课程会有考试,这里把每次考试的经历记录下来,作为学习Python笔记的一部分,后边的考试会持续更新-- Python语 ...

  9. python 二维列表从小到大_给Python开发者准备的110道面试题

    信息量非常大!这是给Python开发者准备的110道笔试面试题,我只把问题列出来了,答案见文末,建议每道题都要认真刷一遍,有些题可以尝试用多种方式来解答,甚至做延伸学习,说真的,很多题都可以单独拎出来 ...

最新文章

  1. solr研磨之游标分页
  2. 【系统架构师修炼之道】(13):操作系统基础知识——进程基础知识
  3. samba权限跟linux权限,linux之samba与linux权限
  4. 如何用ABAP读取LRAW中的数据
  5. day05 数据类型
  6. C语言之程序中内存的来源:栈 堆 数据段
  7. 【elasticsearch】ES生命周期管理
  8. 福利 | 闷骚的程序员是如何讲冷笑话的?
  9. C++循环语句的效率
  10. flash与javacript通信(1)
  11. 【动态规划】最大子段和问题,最大子矩阵和问题,最大m子段和问题
  12. Julia: 编译成EXE文件
  13. Python - matplotlib 不显示中文 findfont: Font family [‘SimHei‘] not found - IOS
  14. MQTT 以太网IO信号采集模块
  15. Rusr Error: linker `x86_64-w64-mingw32-gcc` not found
  16. 高数篇(三)-- 最小二乘法、正则化
  17. 计算机术语CPI是什么意思,鼠标上的cpi什么意思?鼠标知识科普
  18. 【2022】合肥市市赛冲刺【小学组】
  19. Vue—使用canvas实现电子签名
  20. 华中科技大学计算机科学与技术排名,2017华中科技大学专业排名

热门文章

  1. PT展现场直击,广和通5G模组点亮数字化未来
  2. 马云励志演讲:要相信80后、90后创业
  3. seo文章重复率高不利于收录
  4. 【漏洞提示】MySQL8.0.29因重大bug官网已下架
  5. ESP32学习记录 OLED u8g2库
  6. 写给那些冷门专业的大学生,敢问出路在何方?
  7. 新飞飞不显示服务器列表,新飞飞8月15日停服公告及停机期间游戏数据说明
  8. Git安装包(win版)
  9. Docker 搭建 LNMP + Wordpress
  10. Error while building/deploying project