Python核心编程从入门到开发实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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的存在,也禁止多线程的并行执行。