从后台看python–为什么说python是慢的 | 数盟

python越来越作为一种科学技术研究的语言越来越流行,可是我们经常听到一个问题,python是慢的。那么我们从后台分析一下,为什么python是慢的。
python是一种动态类型,解释型语言,它的值都是存储在分散的对象中,而不是紧密的缓存之中。

1.python是动态类型语言

这意味着编译器在程序执行之前并不知道变量定义的类型。C定义变量和Python定义变量的方式的区别:
对于C,编译器通过定义知道变量的类型;然而对于python中的变量,当你知道变量的类型的时候已经是程序执行的时候了。
我们分析一小段代码分别在python和C中执行的具体区别:
在C中,如果你写如下代码:

1

2

3

1.分配一个类型1给a
2.分配一个类型2给b
3.调用一个二进制加法

1

2

3

1.分配1给a

设置一个对象,然后将它的类型设置为整数

将它的值设为1
2.分配2给b

设置一个对象,然后将它的类型设置为整数

将它的值设为2
3.调用一个二进制加法(a,b)

寻找一个类型在对象中

a是一个整数,它的值是a

寻找一个类型在对象中

b是一个整数,它的值是b

调用一个二进制加法

返回结果,结果是一个整数
4.产生一个对象c

将一个对象的类型设置为整数

将它的值分配给结果
动态类型意味着每一步操作需要更多的步骤。python比c慢的一个基本的原因就是数字计算上面的操作。

2.python是一种解释型的语言而不是编译型的

我们可以看到解释型语言和编译型语言的区别。一个聪明的编译器知道怎么提前优化,避免重复和不必要的操作,从而提高效率。当然,在这一点上也是仁者见仁智者见智。

3.python的对象模型导致存储效率低下

python存储数据效率低下的原因,主要可以从下图看出:
这里写图片描述

当然说了python这么多缺点,为什么python用的人还这么多,因为它很简单啊。python用起来的确很简单,就我个人的使用感受而言,除了matlab,我没有看过比python还要简单的语言了。而且python的开源的库很多,所以做很多东西都很方便。

注:转载文章均来自于公开网络,仅供学习使用,不会用于任何商业用途,如果侵犯到原作者的权益,请您与我们联系删除或者授权事宜,联系邮箱:contact@dataunion.org。转载数盟网站文章请注明原文章作者,否则产生的任何版权纠纷与数盟无关。
期待你一针见血的评论,Come on!

不用想啦,马上 "登录"  发表自已的想法.