有办法在python中重载+=吗?

2024-05-22 21:07:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道要重写plus的__add__方法,但是当我使用它重写+=时,我会遇到以下两个问题之一:

(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()方法,但如果可能的话,我宁愿重载+=


Tags: 对象方法add内容returnplustmp指向

热门问题