title: Using 'super' when subclassing python class that is not derived from `object`(old-style?)
body: <p>I'm playing with subclassing <code>OptionParser</code> from the std library module <code>optparser</code>. (Python 2.5.2)  When I attempt it I get the exception:</p>
  
  <pre><code>TypeError: super() argument 1 must be type, not classobj
  </code></pre>
  
  <p>Looking at <code>OptionParser</code>, it is not derived from <code>object</code>. So I added <code>object</code> as a parent class, (shown below) and <code>super</code> works properly.  </p>
  
  <pre><code>from optparse import OptionParser, Option
  class MyOptionParser(OptionParser, object):
      """Class to change 
      """
      def __init__(self,
               usage=None,
               option_list=None,
               option_class=Option,
               version=None,
               conflict_handler="error",
               description=None,
               formatter=None,
               add_help_option=True,
               prog=None,
               epilog=None,
              ):
  
        super(MyOptionParser, self).__init__(usage, option_list, option_class, version, conflict_handler, description, formatter, add_help_option, prog, epilog)
  
  if __name__ == '__main__':
      """Run a quick test
      """
      parser = MyOptionParser()
      parser.add_option("-t", "--test", type="string", dest="test")
      (options, args) = parser.parse_args()
      print "The test option is: %s" % options.test
  </code></pre>
  
  <p>Is this the correct way to go about it?</p>