您当前的位置:首页 > 互联网教程

Python 有什么缺点

发布时间:2025-05-13 14:16:24    发布人:远客网络

Python 有什么缺点

一、Python 有什么缺点

1、python的整个系统,我其实有非常多的不满。但是用任何一门语言都是取舍问题,如果有一门语言,库够多,已读,易用,性能高,我毫不犹豫立刻转过去。python的强处在于庞大的库,还有非常好的易读和易用性。但是相比来说,性能一直是个问题。python的实现性能大约和C相差五倍上下。如果是大规模计算问题,大约能差10倍以上。当然,我们可以写C扩展,但是这就不是使用python了。我们也可以说,很多时候我们不需要这么快的速度。这是个事实,但是不改变python性能差的事实。 python不但性能差,还有GIL这个玩意。以至于我现在对高并发计算都采取多进程的模式。多进程模式的通讯效率肯定比多线程低,而且麻烦。

2、另外,python在底层设计上,也表现出很强的实用主义倾向。这是比较外交术语的词汇,更加直白的说法应当是,混乱,不知所谓。在闭包设计上采用free variable设计,而不是lisp中的environs设计。区别?你试试看在外层闭包中from lib import*。由于引入不定个数名称,free variable无法处理。类似的问题还有LEGB规则,新手往往要花很长时间研究这个例子究竟是怎么错的: a= 1 def f(): print a a= 2我勒个去,这种反直观反人类的事情都有,还敢说自己易读。

3、还有坑爹的元编程,这东西根本是坑爹中的坑爹货。如果你用过多重继承,大概就知道python的整个OO系统看起来根本是大型的仿真,到处都是乱糟糟的。C++怎么解决多重继承的?你最好别用(真心说,这可比python更加坑爹)。java怎么解决多重继承的,只能继承Interface。其实这是变相的变成了Interface-Implement模式。python怎么解决的?MRO!为什麽一个类加个__metaclass__就会改变性质啊,为什麽一个类去生成另一个类的写法是——我基本不记得了,反正web.py里面有用到,需要的话去炒栗子吧。为什麽方法要隐藏居然要改名字加__啊。你到底是在做OO还是在看起来像OO的东西上狂打补丁啊魂淡。

4、lambda表达式弱智。我和人讨论过,lambda是否是图灵完备的。结论还是完备的,不过需要借助Y combinator。何必呢?由于强调lambda的快速特性,因此将lambda强制在一行以内(没有结束标记),导致python其实是没有匿名函数的。一个callback数组写的难过死。

5、语法糖太多了点,当然,这是纯粹的个人感觉。语法糖是把双刃剑,用的好,可以简化编写和阅读,但是太多,往往容易引入语法混乱和额外的约束。

6、另外,语言的自构建特性混乱。虽说不是每门语言都强调自构建特性,但是通常而言,都是使用C实现一个内核,由内核实现一些基础操作。再由基础操作实现更复杂的操作。每层的边界都是比较清晰的。谁来告诉我,python中有多少库在移植时是由纯python实现的?库的相互依赖层级是?

7、python的沙盒化也是个问题,如果沙盒做的够好,我完全可以把python作为一个客户级别的平台。用C写一个很简单的类似浏览器的东西,下载一个URL的python包回去运行(或者仅仅检查更新)。从而保证本地效果/跨平台/安全性。现在?一个都保证不了。我连把一个python包转移到另一台同构设备上都很麻烦(如果两者不是严格匹配,例如系统差异,系统版本差异)无论是web开发还是移动终端开发都必须走传统模式。

二、python有什么优缺点呢

许多同学只知道现在python很火,可是对于python还是了解不多,比如python适合开发哪些类型的应用呢?python有什么优缺点呢?霍营霍营计算机培训跟着我看下来吧~

首选是网络应用,包括网站、后台服务等等;其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便使用。许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。

任何编程语言都有缺点,Python也不例外。优点说过了,简单,优雅,容易入门,而且也可以编写非常复杂的程序,基础代码库非常完善等等等等...

第一个缺点就是运行速度相对较慢。因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。比如C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍。听起来是不是很吓人,但由于网络更慢,需要等待1秒。你想,你能感觉到1.001秒和1.1秒的区别吗?

第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,但是这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。

可以说python仍然是瑕不掩瑜,而且随着人工智能的发展不可避免的会用到python,真的非常值得你去深入了解和学习的

三、Python的特点(优点和缺点)

1、Python是一种面向对象、解释型的脚本语言,同时也是一种功能强大而完善的通用型语言。相比其他编程语言(比如 Java),Python代码非常简单,上手非常容易。

2、举个简单的例子,比如要完成某个功能,如果用 Java需要 100行代码,但用 Python可能只需要 20行代码,这是 Python具有巨大吸引力的一大特点。

3、不仅如此,Python还有其他的特点,下面就给大家做一下总结。

4、Python是一种代表简单注意思想的语言,阅读一个良好的 Python程序,即使是在 Python语法要求非常严格的大环境下,给人的感觉也像是在读英语段落一样。

5、换句话说,Python编程语言最大的优点之一,是其具有伪代码的特质,它可以让我们在开发 Python程序时,专注于解决问题,而不是搞明白语言本身。

6、Python是 FLOSS(自由/开源源码软件)之一,简单地理解就是,用户使用 Python进行开发和发布自己编写的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python也是免费的。

7、开源正在成为软件行业的一种发展趋势,现在有很多商业软件公司都开始将自己的产品变成开源的(例如 Java)。也许,Python的开源正是它如此优秀的原因之一,因为会有这么一群人,他们希望看到一个更加优秀的 Python,从而为了这个目标,不断地对 Python进行创造,不断地改进。

8、Python是高级语言,因此当使用 Python语言编写程序时,我们无需再考虑一些底层细节方面的问题。例如,如何管理程序使用的内存等等。

9、一个用编译型语言(如 C或 C++)写的程序,可以从源文件转换到一个计算机使用的语言。这个过程主要通过编译器完成。当运行程序的时候,我们可以把程序从硬盘复制到内存中并且运行。

10、而 Python语言写的程序,则不需要编译成二进制代码,可以直接从源代码运行程序。在计算机内部,由 Python解释器把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。

11、事实上,由于不再担心如何编译程序,使得使用 Python变得更加简单,我们只需要将 Python程序复制到另外一台计算机上,它就可以工作了。因此,Python程序更加易于移植。

12、由于 Python是开源的,它已经被移植到许多平台上。如果能够避免使用依赖系统的特性,那就意味着,所有 Python程序都无需修改就可以在好多平台上运行,包括 Linux、Windows、FreeBSD、Solaris等等,甚至还有 PocketPC、Symbian以及 Google基于 Linux开发的 Android平台。

13、解释型语言几乎天生就是跨平台的。Python作为一门解释型的语言,它天生具有跨平台的特征,只要为平台提供了相应的 Python解释器,Python就可以在该平台上运行。

14、Python既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中(如 C语言),程序仅仅是由可重用代码的函数构建起来的;而在“面向对象”的语言(如 C++)中,程序是由数据和功能组合而成的对象构建起来的。

15、与其他编程语言(如 C++和 Java)相比,Python是以一种非常强大,而又简单的方式实现的面向对象编程。

16、Python强大的功能也许才是很多用户支持Python的最重要的原因,从字符串处理到复杂的 3D图形编程,Python借助扩展模块都可以轻松完成。

17、实际上,Python的核心模块已经提供了足够强大的功能,使用 Python精心设计的内置对象可以完成许多功能强大的操作。

18、此外,Python的社区也很发达,即使一些小众的应用场景,Python往往也有对应的开源模块来提供解决方案。

19、Python的可扩展性体现为它的模块,Python具有脚本语言中最丰富和强大的类库,这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。

20、Python可扩展性一个最好的体现是,当我们需要一段关键代码运行的更快时,可以将其用 C或 C++语言编写,然后在 Python程序中使用它们即可。

21、除了以上几个特点(也可称之为优点)之外,作为一个解释型语言,Python自然也有一些弱点,比如:

22、速度慢:Python程序比 Java、C、C++等程序的运行效率都要慢。

23、源代码加密困难:不像编译型语言的源程序会被编译成目标程序,Python直接运行源程序,因此对源代码加密比较困难。

24、其实,这两个缺点并不是什么大问题,首先,由于目前计算机的硬件速度越来越快,软件工程往往更关注开发过程的效率和可靠性,而不是软件的运行效率;至于第二个问题就更不是问题了,现在软件行业的大势本就是开源,就像 Java程序同样很容易反编译,但丝毫不会影响它的流行。