Python作为一种面向对象的、跨平台、开源的解释型编程语言,之所以流行,与以下几个原因是分不开的:
- Python简单易用,干净优雅,学习成本低;
- 拥有众多开源的第三方库,功能强大。从小工具到企业级的大型应用,都可以开发。
- Python站在了大数据和人工智能的风口上,未来的发展不可估量。
虽然如此,但Python这门语言并非是完美无缺的。本文就汇总一下Python的特性,比较下Python的优点和缺点。
Python的优点
Python语法简单
Python的设计哲学是优雅、明确、简单。
相对于C、C++、Java、C#这种高级语言,Python对代码格式的要求没有那么严格,用户不必纠结于每条语句之后是否写分号,也不需要给变量声明数据类型,甚至可以像Javascript那样,给同一个变量赋不同类型的值。
这种宽松的语法让用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。
在编程这门工作上,简单的重要性不言而喻,因为这意味着在开发程序时,我们可以专注于解决问题的本身,而不用顾虑语法格式等细枝末节。长时间来看,这对工作效率的提升是非常大的。
Python开源、免费
“开源”一词,也就是开放源代码的意思。
在互联网领域,开源是大势所趋,是未来的方向。有很多软件生产商在后期都会将软件开源,比如Linux操作系统、MySQL数据库、Apache、Firefox(火狐浏览器)等等。
Python也是开源的。
程序员使用Python编写的代码是开源的,Python解释器和内置的模块也是开源的。也就是说所有的Python用户都可以随时查看Python的源代码,一起改进Python的性能,处理Python的漏洞。这样Python这门语言才会越来越健壮。
另一方面要知道的是,开源并不代表着免费。只不过是多数的开源软件都是免费的。
但Python不仅开源,它也免费的。
用户无需担心使用Python开发程序会支付任何费用,也不用担心版权问题,就算使用Python作为商业用途,它也是免费的。
Python支持面向对象
使用Python开发程序,意味着你也可以像Java、C#那样,进行面向对象编程。
面向对象是高级语言的一大特点,这可以使我们在开发大型程序时游刃有余。
Python模块众多
除了Python官方提供的核心模块之外,还有很多第三方机构参与进来为Python开发模块。从简单的数学计算,到复杂的3D图形绘制,借助于众多的模块,Python都可以胜任这些工作。
Python可跨平台,移植性好
Python是解释型语言,解释型语言一般都是可跨平台的。这一点我们已经在《编译型语言与解释型语言》一文中进行了讲解,在此不再赘述。
Python的缺点
运行速度慢
相对于编译型语言,解释型语言运行速度慢这个问题我们已经有所了解。
其实Python之所以慢,不仅仅是边“解释”边翻译,还因为Python是高级语言,所以做了很多底层的工作,例如内存管理等。
但运行速度慢并非是什么大问题,主要是因为速度慢只是与编译型语言作为比较,之间有几十毫秒的差值,而这个差值实际情况中用户根本是毫无感知的。
拿浏览网页为例,大多数的时间都用在了网络连接上,并非Python20ms执行程序的时间。相对于解决Python速度慢的问题,解决网络连接速度慢的问题更加有意义。
Python2.0与Python3.0版本不兼容
Python另一个大的槽点是Python2.0与Python3.0的不兼容。
两个版本间的差异包括:语法,编码声明,除法运算,数据类型,异常处理,文件处理,比较符等等。
这个问题给Python工程师们带来了无数烦恼,而且Python官方在2020年通告不再维护Python2.0,使得历史上大量使用了Python2.0的企业需要很长的时间迁移过渡到Python3.0。