title: Python super() arguments: why not super(obj)?
body: <p>I am trying to understand when and how to use super() in Python correctly (either 2.7.x or 3.x)</p>
  
  <p>on <code>&gt;&gt;&gt; help(super)</code> the interpreter tells me how to call it:</p>
  
  <pre><code>class super(object)
   |  super(type) -&gt; unbound super object
   |  super(type, obj) -&gt; bound super object; requires isinstance(obj, type)
   |  super(type, type2) -&gt; bound super object; requires issubclass(type2, type)
  </code></pre>
  
  <p>I understand that in Python3.x it's now possible to juse use super() within a class definition, but I don't understand why <code>super(obj)</code> is not possible. Or <code>super(self)</code> within a class definition. </p>
  
  <p>I know there must be a reason for it, but I can't find it. To me those lines are equivalent to <code>super(obj.__class__, obj)</code> or <code>super(self.__class__, self)</code> and those would work right?</p>
  
  <p>I would think that just typing <code>super(obj)</code> would be a nice shortcut even in Python 3.x.</p>