Generally, numbers are immutable. However, the numeric operators are also used for mutable objects. Lists and sets, for example, respond to a few of the defined augmented assignment operators. As an optimization, a class can include an in-place version of a selected operator. The methods in the following table implement the augmented assignment statements for mutable objects. Note that these methods are expected to end with return self to be compatible with ordinary assignment:
Method |
Operator |
object.__iadd__(self, other) |
+= |
object.__isub__(self, other) |
-= |
object.__imul__(self, other) |
*= |
object.__itruediv__(self, other) |
/= |
object.__ifloordiv__(self, other) |
//= |
object.__imod__(self, other) |
%= |
object.__ipow__(self, other[, modulo]) |
**= |
object.__ilshift__(self, other) |
<<= |
object... |