Python用于全局空间中的循环性能与函数内部的循环性能

gsb*_*eng 10 python python-2.7 python-3.x

我一直在努力理解Python的循环性能,在这里我发现,对于在全局空间中具有相同迭代的循环,与函数内部的迭代相比需要花费很多时间.

import time

MAX_NUM = 50000000

# Running for loop in global space
start = time.time()

for i in xrange(MAX_NUM):
    pass

print time.time() - start


# Running th same kind of loop within a function
def foo():
    for i in xrange(MAX_NUM):
        pass

start = time.time()
foo()
print time.time() - start
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,我目睹了执行时​​间的巨大差异.

2.00527501106
0.811304092407
Run Code Online (Sandbox Code Playgroud)

我想知道是什么让执行时间产生巨大差异?循环性能如何影响全局空间写入函数内部?