导读:本文是对Python一些最优的技术特性的快速介绍,以解答初学者关心的问题并消除他们最常见的疑惑。
作者:马克·卢茨(Mark Lutz)
如需转载请联系大数据(ID:hzdashuju)
01 Python有哪些技术上的优点
1. 面向对象和函数式
从根本上讲,Python是一种面向对象的语言。它的类模型支持多态、运算符重载和多重继承等高级概念,并且以Python特有的简洁的语法和类型为背景,OOP十分易于使用。事实上,即使你不懂这些术语,仍会发现学习Python比学习其他OOP语言要容易得多。
除了作为一种强大的代码组织和重用手段以外,Python的OOP本质使它成为其他面向对象系统语言的理想脚本工具。例如,通过适当的粘接代码,Python程序可以对C++、Java和C#的类进行子类的定制。
OOP只是Python的一个选择而已,这一点非常重要。即使不能立马成为一个面向对象高手,但你同样可以继续深入学习。就像C++一样,Python既支持面向对象编程也支持面向过程编程的模式。如果条件允许,其面向对象的工具可以立即派上用场。这对策略开发模式十分有用,该模式常用于软件开发的设计阶段。
除了最初的过程式(语句为基础)和面向对象(类为基础)的编程范式,Python在最近几年内置了对函数式编程的支持——一个多数情况下包括生成器、推导、闭包、映射、装饰器、匿名lambda函数和第一类函数对象的集合。这是对其本身OOP工具的补充和替代。
2. 免费
Python的使用和分发是完全免费的。就像其他的开源软件一样,例如,Tcl、Perl、Linux和Apache。你可以从Internet上免费获得Python的源代码。你可以不受限制地复制Python,或将其嵌入你的系统或者随产品一起发布。实际上,如果你愿意的话,甚至可以销售它的源代码。
但请别误会:“免费”并不代表“没有支持”。恰恰相反,Python的在线社区对用户需求的响应和商业软件一样快。而且,由于Python完全开放源代码,提高了开发者的实力,并产生了一个很大的专家团队。
尽管研究或改变一种程序语言的实现并不是对每一个人来说都那么有趣,但是当你知道如果需要的话可以做到这些,该是多么的令人欣慰。你不需要去依赖商业厂商的智慧,因为最终的文档和终极的净土(源码)任凭你的使用。
Python的开发是由社区驱动的,是Internet大范围的协同合作努力的结果。Python语言的改变必须遵循一套规范而有约束力的程序(称作PEP流程),并需要经过规范的测试系统进行彻底检查。正是这样才使得Python相对于其他语言和系统可以保守地持续改进。
尽管Python 2.X和Python 3.X版本之间的分裂有力并蓄意地破坏了这项传统,但通常它仍然体现在Python的这两个系列内部。
3. 可移植
Python的标准实现是由可移植的ANSI C编写的,可以在目前所有主流平台上编译和运行。例如,如今从掌上电脑(PDA)到超级计算机,随处可见 Python的运行。Python可以在下列平台上运行(这里只是部分列表):
Linux和UNIX系统
微软Windows(所有现代版本)
Mac OS(包括OS X 和经典版)
BeOS、OS/2、VMS和QNX
实时操作系统,例如VxWorks
Cray超级计算机和IBM大型机
运行Palm OS、PocketPC和Linux的PDA
运行 Symbian OS和Windows Mobile 的移动电话
游戏终端和iPod
运行谷歌安卓系统和苹果iOS系统的平板和智能手机
以及更多
除了语言解释器本身以外,Python发行时自带的标准库和模块在实现上也都尽可能地考虑到了跨平台的移植性。此外,Python程序自动编译成可移植的字节码,这些字节码在已安装兼容版本Python的平台上运行的结果都是相同的。
这些意味着Python程序的核心语言和标准库可以在Linux、Windows和其他带有Python解释器的平台上无差别地运行。大多数Python