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

乔希·吉布森(Josh Gibson):

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

(1)如果__add__自我变异,则

z = x + y

当我真的不希望x在那里突变时,它将使x突变。

(2)如果__add__返回一个新对象,则

tmp = z
z += x
z += y
tmp += w
return z

z += x执行z之后,t和z指向不同的对象,将返回不带w的内容

我可以做出某种.append()方法,但是+=如果可能的话,我宁愿重载

mipadi:

是。只需覆盖对象的__iadd__方法即可,该方法采用与相同的参数add您可以在此处找到更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章