title: what arg can I use instead of `*args` in child (multiple-inheritance) instance?
body: <p>what <em>arg</em> can I use instead of <code>*args</code> in the child instance? For example in this code:</p>
  <pre><code>class Foo:
      class_var = 'bar'
      def __init__(self):
          self.instance_var = 'baz'
  
  class Test(Foo):
      def __init__(self, instance_var):
          Foo.__init__(self)
          self.new_instance = &quot;duck&quot;
  
  child1 = Test(Foo) 
  print(&quot;child1.instance_var: &quot;, child1.instance_var)
  </code></pre>
  <p>The output is:</p>
  <pre><code>child1.instance_var:  baz
  </code></pre>
  <p>..but when I create the next child, the script works only when I change <code>def __init__(self, instance_var):</code> to <code>def __init__(self, *args):</code>. Without that I get &quot;<strong>TypeError: <strong>init</strong>() missing 1 required positional argument: 'instance_var'</strong>&quot;.</p>
  <p>This code works:</p>
  <pre><code>class Foo:
      class_var = 'bar'
      def __init__(self):
          self.instance_var = 'baz'
  
  class Test(Foo):
      def __init__(self, *args):
          Foo.__init__(self)
          self.new_instance = &quot;duck&quot;
  
  child1 = Test(Foo) 
  print(&quot;child1.instance_var: &quot;, child1.instance_var)
  
  class Test1(Test):
      def __init__(self, *args):
          Test.__init__(self)
          self.new_instance = &quot;new_duck&quot;
  
  child2 = Test1(Test)        
  print(&quot;child2.instance_var: &quot;, child2.new_instance)
  </code></pre>
  <p>The output is:</p>
  <pre><code>child1.instance_var:  baz
  child2.instance_var:  new_duck
  </code></pre>
  <p>But, this one doesn't:</p>
  <pre><code>class Foo:
      class_var = 'bar'
      def __init__(self):
          self.instance_var = 'baz'
  
  class Test(Foo):
      def __init__(self, instance_var):
          Foo.__init__(self)
          self.new_instance = &quot;duck&quot;
  
  child1 = Test(Foo) 
  print(&quot;child1.instance_var: &quot;, child1.instance_var)
  
  class Test1(Test):
      def __init__(self, *args):
          Test.__init__(self)
          self.new_instance = &quot;new_duck&quot;
  
  child2 = Test1(Test)        
  print(&quot;child2.instance_var: &quot;, child2.new_instance)
  </code></pre>
  <p>I don't understand fully why (where should I place <code>instance_var</code> so the code won't throw an error). What's the logic: step by step?</p>