The __iadd__ method
__iadd__(self, other)
These methods are called to implement the augmented arithmetic
operations (+=, -=, \*=, /=, %=, \*\*=, <``<=,
>``>=, &=, ^=, |=). These methods should attempt to
do the operation in-place (modifying self) and return the result
(which could be, but does not have to be, self). If a specific method
is not defined, the augmented operation falls back to the normal
methods. For instance, to evaluate the expression x+=y, where x is
an instance of a class that has an __iadd__() method,
x.\_\_iadd\_\_(y) is called. If x is an instance of a class that
does not define a __iadd__() method, x.\_\_add\_\_(y) and `
y.__radd__(x)are considered, as with the evaluation of x+`y.