title: Python: Correct way to initialize when superclasses accept different arguments?
body: <p>If I've got three classes like this:</p>
  
  <pre><code>class BaseClass(object):
      def __init__(self, base_arg, base_arg2=None):
          ...
  
  class MixinClass(object):
      def __init__(self, mixin_arg):
          ...
  
  class ChildClass(BaseClass, MixinClass):
      def __init__(self, base_arg, mixin_arg, base_arg2=None):
          ???
  </code></pre>
  
  <p>What is the correct way to initialize <code>MixinClass</code> and <code>BaseClass</code>?</p>
  
  <p>It doesn't <em>look</em> like I can use <code>super</code> because the <code>MixinClass</code> and the <code>BaseClass</code> both accept different arguments… And two calls, <code>MixinClass.__init__(...)</code> and <code>BaseClass.__init__(...)</code>, will could cause the diamond inheritence problem <code>super</code> is designed to prevent.</p>