python的设计哲学是“优雅”、“明确”、“简单”。因此,perl语言中“总是有多种方法来做同一件事”的理念在python开/发/者中通常是难以忍受的。python开/发/者的哲学是“用一种方法,最/好是只有一种方法来做一件事”。在设计python语言时,如果面临多种选择,python开/发/者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,python源代码通常被认为比perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为python格言。在python解释器内运行import this可以获得完整的列表。python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到python内。所以很多人认为python很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,python设计师倾向于使用jit技术,或者用使用c/c++语言改写这部分程序。可用的jit技术是pypy。python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。python支持重载运算符和动态类型。相对于lisp这种传统的函数式编程语言,python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了haskell和standard ml中久经考验的函数式程序设计工具。虽然python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如zope、mnet及bittorrent,google也广泛地使用它。python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、vbscript等只能处理简单任务的编程语言,并不能与python相提并论。python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。python提供了丰富的api和工具,以便程序员能够轻松地使用c语言、c++、cython来编写扩充模块。python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把python作为一种“胶水语言”(glue language)使用。使用python将其他语言编写的程序进行集成和封装。在google内部的很多项目,例如google engine使用c++编写性能要求极高的部分,然后用python或java/go调用相应的模块。《python技术手册》的作者马特利(alex martelli)说:“这很难讲,不过,2004 年,python 已在google 内部使用,google 召募许多 python 高手,但在这之前就已决定使用python,他们的目的是 python where we can, c++ where we must,在操控硬件的场合使用 c++,在快/速开发时候使用 python。”
西安飞凡网络技术咨询有限公司
400 011 2010