title: Confusion in code using inheritance, instantiation, *args, **kwargs
body: <pre><code>class Pen(object):
      def __init__(self, mean_radius = None, length = None):
          self.usage = "Is used to apply ink trails to drawing surfaces"
          self.mean_radius = mean_radius
          self.length = length
  
  class FountainPen(Pen):
      def __init__(self, manufacturer = "Waterman", *args, **kwargs):
          Pen.__init__(self, *args, **kwargs)
          self.manufacturer = manufacturer
          self.cartridge_state =  "non-empty"
  
  &gt;&gt;&gt; instance_FP = FountainPen(5, 1)
  &gt;&gt;&gt; instance_FP.mean_radius
  &gt;&gt;&gt; print instance_FP.mean_radius
  1    
  &gt;&gt;&gt; print instance_FP.length
  None
  </code></pre>
  
  <p>What happens with the integer <code>5</code> being passed as an argument in the instantiation of <code>FountainPen</code>?
  Why does <code>print instance_FP.mean_radius</code> return <code>1</code> and not <code>5</code>?</p>