title: how do I properly inherit from a superclass that has a __new__ method?
body: <p>Let's assume we have a class 'Parent' , that for some reason has <code>__new__</code> defined and a class 'Child' that inherits from it. 
  (In my case I'm trying to inherit from a 3rd party class that I cannot modify)</p>
  
  <pre><code>class Parent:
      def __new__(cls, arg):
          # ... something important is done here with arg
  </code></pre>
  
  <p>My attempt was: </p>
  
  <pre><code>class Child(Parent):
      def __init__(self, myArg, argForSuperclass):
           Parent.__new__(argForSuperclass)
           self.field = myArg
  </code></pre>
  
  <p>But while</p>
  
  <pre><code>p = Parent("argForSuperclass")
  </code></pre>
  
  <p>works as expected</p>
  
  <pre><code>c = Child("myArg", "argForSuperclass")
  </code></pre>
  
  <p>fails, because 'Child' tries to call the <code>__new__</code> method it inherits from 'Parent' instead of its own <code>__init__</code> method.</p>
  
  <p>What do I have to change in 'Child' to get the expected behavior?</p>