The assignment aspect of __iadd__ is done like any other assignment in python. The one to one equivalent of eliteraspberrie&#x27;s would be:<p><pre><code>  class Vector2D:
      def __iadd__(self, other)
          return self + other
</code></pre>
No &quot;self mutation&quot; as you suggest. a += b is equivalent to a = a.__iadd__(b)