Python 的爱与恨:那些不得不说的优缺点

Python 的爱与恨:那些不得不说的优缺点_第1张图片

显著的优点

Python 语言拥有诸多的优点,这其中,以下几个优点特别显著:

Python 的爱与恨:那些不得不说的优缺点_第2张图片

  1. 简单易学: Python 语言相对于其他编程语言来说,属于比较容易学习的一门编程语言,它注重的是如何解决问题而不是编程语言的语法和结构。正是因为 Python 语言简单易学,所以,已经有越来越多的初学者选择 Python 语言作为编程的入门语言。例如,在浙江省 2017 年高中信息技术改革中,《算法与程序设计》课程将使用 Python 语言替换原有的 VB 语言。

  2. 语法优美: Python 语言力求代码简洁、优美。在 Python 语言中,采用缩进来标识代码块,通过减少无用的大括号,去除语句末尾的分号等视觉杂讯,使得代码的可读性显著提高。阅读一段良好的 Python 程序就感觉像是在读英语一样,它使你能够专注于解决问题,而不用太纠结编程语言本身的语法。

  3. 丰富强大的库: Python 语言号称自带电池(Battery Included),寓意是 Python 语言的类库非常的全面,包含了解决各种问题的类库。无论实现什么功能,都有现成的类库可以使用。如果一个功能比较特殊,标准库没有提供相应的支持,那么,很大概率也会有相应的开源项目提供了类似的功能。合理使用 Python 的类库和开源项目,能够快速的实现功能,满足业务需求。

  4. 开发效率高: Python 的各个优点是相辅相成的。例如,Python 语言因为有了丰富强大的类库,所以,Python 的开发效率能够显著提高。相对于 C、C++ 和 Java 等编译语言,Python 开发者的效率提高了数倍。实现相同的功能,Python 代码的文件往往只有 C、C++ 和 Java 代码的 1/5~1/3。虽然 Python 语言拥有很多吸引人的特性,但是,各大互联网公司广泛使用 Python 语言,很大程度上是因为 Python 语言开发效率高这个特点。开发效率高的语言,能够更好的满足互联网快速迭代的需求,因此,Python 语言在互联网公司使用非常广泛。

  5. 应用领域广泛: Python 语言的另一大优点就是应用领域广泛,工程师可以使用 Python 做很多的事情。例如,Web 开发、网络编程、自动化运维、Linux 系统管理、数据分析、科学计算、人工智能、机器学习等等。Python 语言介于脚本语言和系统语言之间,我们根据需要,既可以将它当做一门脚本语言来编写脚本,也可以将它当做一个系统语言来编写服务。

Python 的爱与恨:那些不得不说的优缺点_第3张图片

不可忽视的缺点

毫无疑问,Python 确实有用很多的优点,每一个优点看起来都非常吸引人。但是,Python 并不是没有缺点的,最主要的缺点有以下几个:

Python 的爱与恨:那些不得不说的优缺点_第4张图片

  1. Python 的执行速度不够快。当然,这也不是一个很严重的问题,一般情况下,我们不会拿 Python 语言与 C/C++ 这样的语言进行直接比较。在 Python 语言的执行速度上,一方面,网络或磁盘的延迟,会抵消掉部分 Python 本身消耗的时间;另一方面,因为 Python 特别容易和 C 结合起来,因此,我们可以通过分离一部分需要优化速度的应用,将其转换为编译好的扩展,并在整个系统中使用 Python 脚本将这部分应用连接起来,以提高程序的整体效率。
  2. Python 的 GIL 锁限制并发: Python 的另一个大问题是,对多处理器支持不好。如果读者接触 Python 时间比较长,那么,一定听说过 GIL 这个词。GIL 是指 Python 全局解释器锁(Global Interpreter Lock),当 Python 的默认解释器要执行字节码时,都需要先申请这个锁。这意味着,如果试图通过多线程扩展应用程序,将总是被这个全局解释器锁限制。当然,我们可以使用多进程的架构来提高程序的并发,也可以选择不同的 Python 实现来运行我们的程序。
  3. Python 2 与 Python 3 不兼容: 如果一个普通的软件或者库,不能够做到后向兼容,那么,它会被用户无情的抛弃了。在 Python 中,一个槽点是 Python 2 与 Python 3 不兼容。因为 Python 没有向后兼容,给所有的 Python 工程师带来了无数的烦恼。

Python 的爱与恨:那些不得不说的优缺点_第5张图片

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


你可能感兴趣的:(Python 的爱与恨:那些不得不说的优缺点)