title: How are Python in-place operator functions different than the standard operator functions?
body: <p>From the <a href="http://docs.python.org/library/operator.html" rel="nofollow noreferrer">docs</a>:</p>
  <blockquote>
  <p>Many operations have an “in-place”
  version. The following functions
  provide a more primitive access to
  in-place operators than the usual
  syntax does; for example, the
  statement x += y is equivalent to x =
  operator.iadd(x, y). Another way to
  put it is to say that z =
  operator.iadd(x, y) is equivalent to
  the compound statement z = x; z += y.</p>
  </blockquote>
  <p>Questions:</p>
  <ul>
  <li><p>Why isn't <code>operator.iadd(x, y)</code> equivalent to <code>z = x; z += y</code>?</p>
  </li>
  <li><p>How does <code>operator.iadd(x, y)</code> differ from <code>operator.add(x, y)</code>?</p>
  </li>
  </ul>
  <p><a href="https://stackoverflow.com/questions/2027284/and-operators-are-different">Related question</a>, but I'm not interested in Python class methods; just regular operators on built-in Python types.</p>