title: Maximum recursion depth error in Python when calling super's init.
body: <p>I have a class hierarchy A &lt;- B &lt;- C, in B, I need some processing in the constructor, so I came up with this code from this post: <a href="https://stackoverflow.com/questions/576169/understanding-python-super-with-init-methods">Understanding Python super() with __init__() methods</a></p>
  
  <pre><code>#!/usr/bin/python
  
  class A(object):
      def __init__(self, v, v2):
          self.v = v
          self.v2 = v2
  
  class B(A):
      def __init__(self, v, v2):
          # Do some processing
          super(self.__class__, self).__init__(v, v2)
  
  class C(B):
      def hello():
          print v, v2
  
  
  b = B(3, 5)
  print b.v
  print b.v2
  
  c = C(1,2)
  print c
  </code></pre>
  
  <p>However, I have an runtime error from maximum recursion exceeded </p>
  
  <pre><code>  File "evenmore.py", line 12, in __init__
      super(self.__class__, self).__init__(v, v2)
  RuntimeError: maximum recursion depth exceeded while calling a Python object
  </code></pre>
  
  <p>What might be wrong?</p>