不知道有没有人注意过同样的代码是否封装在函数里,运行速度是不同的。比如以下两个代码:
未封装在函数中的代码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
欢迎关注~