我知道__add__
覆盖 plus 的方法,但是当我使用它来覆盖 += 时,我最终遇到了两个问题之一:
(1) 如果__add__
自我变异,则
z = x + y
当我真的不希望 x 在那里发生变异时,会变异 x 。
(2) 如果__add__
返回一个新对象,则
tmp = z
z += x
z += y
tmp += w
return z
将返回没有 w 的东西,因为 z 和 tmp 在执行后指向不同的对象z += x
。
我可以制作某种方法,但如果可能的话.append()
,我更愿意重载。+=