title: Why does calling Python's 'magic method' not do type conversion like it would for the corresponding operator?
body: <p>When I subtract a float from an integer (e.g. <code>1-2.0</code>), Python does implicit type conversion (I think). But when I call what I thought was the same operation using the magic method <code>__sub__</code>, it suddenly does not anymore.</p>
  
  <p>What am I missing here? When I overload operators for my own classes, is there a way around this other than explicitly casting input to whatever type I need?</p>
  
  <pre><code>a=1
  a.__sub__(2.)
  # returns NotImplemented
  a.__rsub__(2.)
  # returns NotImplemented
  # yet, of course:
  a-2.
  # returns -1.0
  </code></pre>