title: Python super() raises TypeError
body: <p>In Python 2.5, the following code raises a <code>TypeError</code>:</p>
  
  <pre><code>&gt;&gt;&gt; class X:
        def a(self):
          print "a"
  
  &gt;&gt;&gt; class Y(X):
        def a(self):
          super(Y,self).a()
          print "b"
  
  &gt;&gt;&gt; c = Y()
  &gt;&gt;&gt; c.a()
  Traceback (most recent call last):
    File "&lt;stdin&gt;", line 1, in &lt;module&gt;
    File "&lt;stdin&gt;", line 3, in a
  TypeError: super() argument 1 must be type, not classobj
  </code></pre>
  
  <p>If I replace the <code>class X</code> with <code>class X(object)</code>, it will work. What's the explanation for this?</p>