美文网首页Python中文社区随缘生物信息学与算法
python代码为什么在函数中运行更快

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

作者: 生信编程日常 | 来源:发表于2019-12-26 13:36 被阅读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

    相关文章

      网友评论

        本文标题:python代码为什么在函数中运行更快

        本文链接:https://www.haomeiwen.com/subject/duikoctx.html