I tried to do this: class Handler(SimpleHTTPRequestHandler): def do_GET(self): super(Handler, self).do_GET() print self.path However super fails: TypeError: super() argument 1 must be type, not classobj Looking up the chain of base classes, I found that SocketServer.BaseRequestHandler is defined as follows: class BaseRequestHandler: No "(object)" there to make it a new-style class. I think that's wrong? BTW, in the 3.1 library it's defined the same way, but I'd assume that all classes are "new-style" in 3.1?
We can't change this for 2.6 since it's not a bug fix, and it's too late for 2.7. I doubt we would ever change it for 2.x, since it's likely to break other code is subtle ways. In 3.x all classes are new-style, so it's not at issue there.