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

1.python是动态类型语言

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

int a = 1;
int b = 2;
int c = a + b;

1.分配一个类型1给a 2.分配一个类型2给b 3.调用一个二进制加法<int,int>(a,b) 4.将结果分配给c

在python中,同样的

a = 1
b = 2
c = a + b

1.分配1给a

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

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

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

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

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