getitem - ¿Hay una manera de sobrecargar+= en python?
python__add__ (1)
Sí. Simplemente anule el método __iadd__
del objeto, que toma los mismos parámetros que add
. Puede encontrar más información here .
Sé que el método __add__
para anular más, pero cuando lo uso para anular + =, __add__
con uno de dos problemas:
(1) si __add__
muta a sí mismo, entonces
z = x + y
mutará x cuando realmente no quiero que x sea mutado allí.
(2) si __add__
devuelve un nuevo objeto, entonces
tmp = z
z += x
z += y
tmp += w
return z
devolverá algo sin w ya que z y tmp apuntan a objetos diferentes después de que se ejecuta z += x
.
Puedo crear algún tipo de método .append()
, pero preferiría sobrecargar +=
si es posible.