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.