@dataclassのfrozen=Trueの仕組み
#dataclasses
実装を追った
__setattr__で例外を送出しているため、属性に値を代入できない
frozen=TrueのときFrozenInstanceErrorが送出される
https://github.com/python/cpython/blob/v3.10.5/Lib/dataclasses.py#L172
送出している(っぽい)のは_frozen_get_del_attr
https://github.com/python/cpython/blob/v3.10.5/Lib/dataclasses.py#L599-L621
__setattr__と__delattr__となる関数を返していそう
_create_fnを呼ぶ
frozen=Trueのときの_create_fn呼び出し
呼び出し順
@dataclass → _process_class 呼び出し
https://github.com/python/cpython/blob/v3.10.5/Lib/dataclasses.py#L1157
_process_class → _frozen_get_del_attr 呼び出し
https://github.com/python/cpython/blob/v3.10.5/Lib/dataclasses.py#L882
https://github.com/python/cpython/blob/v3.10.5/Lib/dataclasses.py#L1075-L1079 (frozen=Trueの分岐)で呼び出している