title: How can I set an attribute in a frozen dataclass custom __init__ method?
body: <p>I'm trying to build a <code>@dataclass</code> that defines a schema but is not actually instantiated with the given members. (Basically, I'm hijacking the convenient <code>@dataclass</code> syntax for other purposes). This almost does what I want:</p>
  
  <pre><code>@dataclass(frozen=True, init=False)
  class Tricky:
      thing1: int
      thing2: str
  
      def __init__(self, thing3):
          self.thing3 = thing3
  </code></pre>
  
  <p>But I get a <code>FrozenInstanceError</code> in the <code>__init__</code> method:</p>
  
  <pre><code>dataclasses.FrozenInstanceError: cannot assign to field 'thing3'
  </code></pre>
  
  <p>I need the <code>frozen=True</code> (for hashability). Is there some way I can set a custom attribute in <code>__init__</code> on a frozen <code>@dataclass</code>?</p>