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