title: in a python attrs class, how can I override generated __init__ with my own
body: <p>So I like to use attr but sometimes I need to do my own thing. 
  can I override the <code>__init__</code> method with my own? </p>
  
  <pre><code>import attr
  @attr.s(auto_attribs=True)
  class MyClass:
       i: int
       def __init__(self, i, special=None):
            if special:
                 self.i = special
            else:
                 self.i = i
  &gt;&gt;&gt; a = MyClass(i=1,special=2)
  Traceback (most recent call last):
    File "&lt;input&gt;", line 1, in &lt;module&gt;
      a = MyClass(i=1,special=2)
  TypeError: __init__() got an unexpected keyword argument 'special'
  </code></pre>
  
  <p>Another example:</p>
  
  <pre><code>@attr.s(auto_attribs=True)
  class MyOtherClass:
       i: int
       def __init__(self, i, **kwargs):
           self.i = kwargs.get('magic',i)
  
  
  
  &gt;&gt;&gt; a = MyOtherClass(i=5,magic=12)
  Traceback (most recent call last):
    File "&lt;input&gt;", line 1, in &lt;module&gt;
      a = MyOtherClass(i=5,magic=12)
  TypeError: __init__() got an unexpected keyword argument 'magic'
  </code></pre>