title: Python subclassing a class with custom __new__
body: <p>There's a class (not created by me, from a 3rd party library) that has no <code>__init__</code> declared (other than <code>object</code>'s <code>__init__</code>), and this is its <code>__new__</code>:</p>
  
  <pre><code>def __new__(cls, uid):
      self = super().__new__(cls, uid)
      self._info = get_info_from_uid(uid)
      return self
  </code></pre>
  
  <p>I can't see why didn't they just use <code>__init__</code> here, but they didn't.</p>
  
  <p>Now I'd like to subclass this and give it an additional attribute; before I checked the source-code of the class (only the documentation), I thought it's just using <code>__init__</code> like others, so here's what I did:</p>
  
  <pre><code>class MyClass(TheirClass):
      def __init__(self, uid, my_stuff=()):
          super().__init__(uid)
          self.my_stuff = my_stuff
  </code></pre>
  
  <p>Apparently this raised a TypeError from <code>object.__init__()</code> not taking parameteres.
  How should I subclass such class with <code>__new__</code>? 
  Do I just override the <code>__new__</code> method to?</p>