title: Understanding arithmetic operators in Python
body: <p>As I currently understand it, arithmetic operands like '+' and '-' are a special kind of methods, belonging to the integer class. They seem different to me because you don't have to format arithmetic operations like so: <code>x.__add__(y)</code> but that is what happens behind the scenes when you write <code>x + y</code>.</p>
  
  <p>My first question is: am I right so far?</p>
  
  <p>My second question is: What happens in the <code>__add__</code> method? I can't find this in in any documentation. I want to understand how this doesn't lead to infinite regression, as I can only picture this method as something like this:</p>
  
  <pre><code>def __add__(a,b):
     return a + b
  </code></pre>
  
  <p>but then ofcourse, you didn't explain the '+' away, which leads to the infinite regression.</p>
  
  <p>I hope my question is clear, as it's all a bit fuzzy in my head. Basically I'm trying to get a good understanding of what the fundamentals of Python are. (and maybe in other languages?)</p>