title: Why doesn't super(Thread, self).__init__() work for a threading.Thread subclass?
body: <p>Every object I know of in Python can take care of its base class initialization by calling:</p>
  
  <pre><code>super(BaseClass, self).__init__()
  </code></pre>
  
  <p>This doesn't seem to be the case with a subclass of <code>threading.Thread</code>, since if I try this in <code>SubClass.__init__()</code>, I get:</p>
  
  <pre><code>RuntimeError: thread.__init__() not called
  </code></pre>
  
  <p>What gives this error?  I looked at the source for <code>threading.Thread</code> and it looks like that <code>__init__</code> method should set <code>Thread.__initialized = True</code>.  I see that all examples use the following <code>__init__</code>:</p>
  
  <pre><code>class YourThread(threading.Thread):
      def __init__(self, *args):
          threading.Thread.__init__(self)
          # whatev else
  </code></pre>
  
  <p>But why?</p>