我通过timeit.repeat
比较两种不同的使用_accumulator_
.
def testAccumPlusEqual():
x = 0
for i in range(100):
x += 1
return x
def testAccumEqualPlus():
x = 0
for i in range(100):
x = x + 1
return x
我的实现timeit.repeat
是:
if __name__ == '__main__':
import timeit
print(timeit.repeat("testAccumPlusEqual()",
setup="from __main__ import testAccumPlusEqual"))
print(timeit.repeat("testAccumEqualPlus()",
setup="from __main__ import testAccumEqualPlus"))
结果如下:
>>>
[8.824021608811469, 8.80440620087051, 8.791231916848997]
[8.101681307351758, 8.143080002052649, 8.181129610882778]
诚然,从宏观上看,这个时间差异可能并不明显,但如果大规模使用它可能会导致减速。所以我想我真的在问:
从我所见的任何地方来看,事实上的标准是用 累积+=
,但情况仍然如此吗?
为什么会+=
表现比不上x=x+
?
注意:在 Windows 7 64 位上使用 CPython 3.3.2(使用 32 位版本的 python)