frozen=Trueのときの_create_fn呼び出し
__setattr__を作る呼び出し
name: '__setattr__'
args: ('self', 'name', 'value')
body(_create_fnの中で以下のようにjoinされる)
code:py
if type(self) is cls or name in {fields_str}: # fields_strはf-stringで展開される
raise FrozenInstanceError(f"cannot assign to field {name!r}")'
super(cls, self).__setattr__(name, value)
fields_strはタプルとして作っている
fieldsは_frozen_get_del_attrの第2引数
field_list = [f for f in fields.values() if f._field_type is _FIELD](_process_class)
fieldsは空の辞書で始まり、フィールドが追加される
locals
['cls': cls, 'FrozenInstanceError': FrozenInstanceError}
clsは_frozen_get_del_attrの第1引数
(_process_classの第1引数)
globals
_frozen_get_del_attrの第3引数
globalsは_process_classで辞書として作っている