想写这篇博客的原因是因为今天在一个群里和两个小伙伴讨论到了这个问题,我的认知是很多人对于Python
这门语言有或多或少的误解,今天我就从底层逻辑的角度来简单说明一下Python
为什么不比C
类语言(C,C++,C#
等)运行速度慢。
首先我们应该理解一点,Python
语言本身的很多库也是基于C
类语言进行开发的。这些库本身就相当于是封装了C
类语言本身,那么我们说这些库运行的速度会比C
类语言慢吗?答案当然是不会,因为两个本身就是同一种东西。所以Python
这门语言更像是一个调用API
接口的语言。
其次,实际中我们如果测试一些Python
代码的运行时间,我们会发现确实速度比C
类语言"慢"很多,这又是为什么呢?原因是大部分我们写出来的Python
代码都会难以避免地使用循环体结构。比如库内有一个函数已经使用了循环体结构,循环了100
次,这时我们在调用这个库函数后又使用了循环体结构,循环100
次,这时代码的执行次数就会变为100 * 100 =10000
次。这将会大大地提高代码运行的时间。因此如果我们在书写Python代码的时候能够尽量避免使用循环体结构,那么Python
代码的运行速度一定不会比C
类语言的运行速度慢!
那么是不是所有的Python
代码都可以去掉循环体结构呢?这里我个人并不是百分百确定所有代码都可以,但是可以负责任地说,绝大部分Python
代码都可以采用一些Pythonic
的代码书写技巧来去掉循环体。
去掉循环体的常用手段:数组切片(这是一个神器,初学者和老手的差异很大)
此外,Python
现在的代码加速方面做的也越来越好了,可以提升Python
代码运行速度的手段也越来越多了。除了在书写Python
代码的时候从逻辑出发优化代码本身,也可以使用一些外部工具来解决。
可以提升Python
代码运行速度的工具:PyPy
, Numba
此外小编认为,一门语言的好坏主要取决于使用这门语言的人数。更重要的是取决于使用这门语言的"攻城狮们"。请不要轻易地批评一门语言,毕竟存在即合理,更不要提多次登上排行榜首位的Python
。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~