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

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

未封装在函数中的代码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
欢迎关注~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容