为何Python中加法赋值操作比普通赋值慢很多?
为什么Python中加法赋值
+=比直接赋值更慢? 先看你做的测试代码:
示例1(直接赋值):
num = 0 num = 2*2 # 耗时:13.8 ns ± 0.158 ns per loop
示例2(加法赋值):
num = 0 num += 2*2 # 耗时:23.8 ns ± 0.232 ns per loop
两者的核心差异在于底层执行的字节码步骤不同:
- 示例1的第二步是直接计算
2*2,然后把结果覆盖赋值给num,完全不需要读取num原来的0值。 - 示例2的第二步要完成三件事:先读取
num当前的0值,再计算2*2得到4,接着执行0+4的加法操作,最后把结果存回num。
简单说,+=是读取原变量值 → 执行加法 → 存回变量的三步操作,而直接赋值是计算结果 → 覆盖变量的两步操作,多出来的读取和加法步骤自然会增加耗时,这就是它更慢的原因。
内容的提问来源于stack exchange,提问作者latisha.
相关产品推荐
相关产品推荐

