special getitem from __str__ __eq__ __add__ python operator-overloading

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.