1.1.1 Python的优缺点
通过上面的介绍,可以了解到Python是一门动态解释性语言。那么,这门语言具有哪些优缺点呢?
1.Python的优点
Python具有如下优点。
1)易学
Python的定位是“优雅”“明确”“简单”,所以Python程序看上去非常简单易懂。初学者学习Python很容易入门,而且将来深入下去,可以编写那些非常复杂的程序。
2)开发效率高
Python拥有强大的第三方库,基本上常用的计算机能实现的功能,在Python官方库里都有相应的模块提供支持。直接下载调用后,在基础库的基础上再进行开发,可以大大缩短开发周期,避免重复“造轮子”。
3)高级语言
在用Python编写程序的时候,无须考虑诸如如何管理程序所使用的内存等底层细节。
4)可移植性
由于Python的开源本质,它已经被移植到许多平台上(经过改动,使它能够工作在不同的平台上)。如果能够避免使用依赖系统的特性,那么所有的Python程序无须修改,就可以在市场上几乎所有的系统平台上运行。
5)可扩展性
如果你需要一段关键代码运行得更快,或者希望某些算法不公开,则可以用C或C++语言编写一部分程序,然后在你的Python程序中调用它们。
6)可嵌入性
可以把Python嵌入C/C++程序中,从而向程序用户提供脚本功能。
2.Python的缺点
Python具有如下缺点。
1)运行速度慢
Python的运行速度比C语言慢很多,跟Java相比也要慢一些,这是很多编程高手不屑于使用Python的主要原因。其实,这里所指的运行速度慢在大多数情况下用户是无法直接感知的,必须借助测试工具才能体现出来。比如,用C语言运行一个程序花了0.01s,用Python花了0.1s,C语言的运行速度比Python的运行速度快了10倍,但这是无法直接通过肉眼感知的,因为这已经超过了一个正常人眼睛所能感知到的时间最小单位。其实,在大多数情况下,Python已经完全可以满足你对程序运行速度一个的要求,除非你要写对运行速度要求极高的搜索引擎等,在这种情况下,当然还是建议你用C语言或其他语言工具去实现。
2)代码不能加密
因为Python是解释性语言,所以它的源码是以明文形式存放的。不过,我不认为这算一个缺点。如果你的项目要求源代码必须是加密的,可以通过其他辅助手段实现。
3)线程不能利用多CPU
这是Python被人诟病最多的一个缺点。GIL(Global Interpreter Lock,全局解释器锁)是计算机程序设计语言解释器用于同步线程的工具,它使得任何时刻仅有一个线程在执行。Python的线程是操作系统的原生线程,在Linux系统上为Pthread,在Windows系统上为Win thread,完全由操作系统调度线程的执行。在一个Python解释器进程内有一个主线程,以及多个用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,也禁止多线程的并行执行。