gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:37:11 24 4
gpt4 key购买 nike

我知道覆盖 plus 的 __add__ 方法,但是当我使用它来覆盖 += 时,我遇到了两个问题之一:

(1) 如果 __add__ 改变自身,那么

z = x + y

当我真的不希望 x 在那里发生变异时,将变异 x。

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

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

将返回不带 w 的内容,因为在执行 z += x 后 z 和 tmp 指向不同的对象。

我可以制作某种 .append() 方法,但如果可能的话,我更愿意重载 +=

最佳答案

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

关于python - 有没有办法在python中重载+=?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com