title: How does Python's super() work with multiple inheritance?
body: <p>How does <code>super()</code> work with multiple inheritance? For example, given:</p>
  <pre><code>class First(object):
      def __init__(self):
          print &quot;first&quot;
  
  class Second(object):
      def __init__(self):
          print &quot;second&quot;
  
  class Third(First, Second):
      def __init__(self):
          super(Third, self).__init__()
          print &quot;that's it&quot;
  </code></pre>
  <p>Which parent method of <code>Third</code> does <code>super().__init__</code> refer to? Can I choose which runs?</p>
  <p>I know it has something to do with method resolution order (<a href="http://en.wikipedia.org/wiki/C3_linearization" rel="noreferrer">MRO</a>).</p>