Python中文社区随缘生物信息学与算法

python代码为什么在函数中运行更快

2019-12-26  本文已影响0人  生信编程日常

不知道有没有人注意过同样的代码是否封装在函数里,运行速度是不同的。比如以下两个代码:

未封装在函数中的代码iteration.py:

import datetime
start = datetime.datetime.now()

for i in range(10**8):
    pass

end = datetime.datetime.now()
print (end-start)

封装在函数中的def_iter.py:

import datetime
start = datetime.datetime.now()

def main():
    for i in range(10**8):
        pass
main()

end = datetime.datetime.now()
print (end-start)

分别运行这两段代码,第一段代码输出时间0:00:04.791258; 第二段输出时间02.907351(每次可能时间不太相同,不过都是第一段时间长)。

这其实是因为存储局部变量和全局变量的时间不同,这与CPython的编译有关。在函数中时i是一个局部变量,而不在函数中时就变成了全局变量。

参考链接:https://stackoverflow.com/questions/11241523/why-does-python-code-run-faster-in-a-function
欢迎关注~

image.png
上一篇下一篇

猜你喜欢

热点阅读