python +=和+的区别
python中的 += 和 +不尽相同!当对象为不可变对象时即对象为set(元祖)、字典时,二者是一样的,都会产生一个新的对象(地址发生变化)。当对象为可变对象时如list,二者是不一样。使用+会生成一个新的对象(对象的地址发生变化),而使用+=则不会生成一个新的对象(即地址不发生变化,仅内部的值发生变化)如计算梯度时,要使用+=,即使得地址不发生改变,仅改变内部的值。如果使用+的话,会导致地址发生变化,生成新的tensor对象,其require_grad默认False,后续使用其梯
复制链接