在Python编程中,访问局部变量的速度比访问全局变量或对象属性要快
。
下面是一个例子来展示这一点:
import timeit
class Example:
def __init__(self):
self.value = 0
obj = Example()
def test_dot_notation():
for _ in range(1000):
obj.value += 1
def test_local_variable():
value = obj.value
for _ in range(1000):
value += 1
obj.value = value
print(timeit.timeit(test_dot_notation, number=1000))
# 0.036605041939765215
print(timeit.timeit(test_local_variable, number=1000))
# 0.024470250005833805
这就是Python的工作方式。直观地讲,当一个函数被编译时,函数内部的局部变量是已知的,但是其他外部变量需要时间来检索。
这是一个小问题,但我们可以利用它来优化我们的代码,特别是在处理大量数据时。