title: __add__ to support addition of different types?
body: <p>Would be very easy to solve had python been a static programming language that supported overloading. I am making a class called Complex which is a representation of complex numbers (I know python has its own, but i want to make one myself), where a is the real number and b is the imaginary (<code>Complex(a, b)</code>). It should support adding Complex instances together (<code>Complex(2, 4) + Complex(4, 5) = Complex(6, 9)</code>), as well as adding an integer (<code>Complex(2, 3) + 4 = Complex(6, 3)</code>). However, due to the nature of python...</p>
  
  <pre class="lang-py prettyprint-override"><code>__add__(self, other):
  </code></pre>
  
  <p>...I have to choose which the class will support, because it won't recognize types at compile-time, as well as not supporting overloading of functions. What is the best solution? Do I have to write an if statement in relation to the datatype of the <code>other</code> parameter?</p>