Skip to content

Commit 3b10968

Browse files
Use __class__ in setattr and delattr
1 parent 78b1370 commit 3b10968

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Lib/dataclasses.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -726,24 +726,24 @@ def _init_fn(fields, std_fields, kw_only_fields, frozen, has_post_init,
726726

727727

728728
def _frozen_get_del_attr(cls, fields, func_builder):
729-
locals = {'cls': cls,
729+
locals = {'__class__': cls,
730730
'FrozenInstanceError': FrozenInstanceError}
731-
condition = 'type(self) is cls'
731+
condition = 'type(self) is __class__'
732732
if fields:
733733
condition += ' or name in {' + ', '.join(repr(f.name) for f in fields) + '}'
734734

735735
func_builder.add_fn('__setattr__',
736736
('self', 'name', 'value'),
737737
(f' if {condition}:',
738738
' raise FrozenInstanceError(f"cannot assign to field {name!r}")',
739-
f' super(cls, self).__setattr__(name, value)'),
739+
f' super(__class__, self).__setattr__(name, value)'),
740740
locals=locals,
741741
overwrite_error=True)
742742
func_builder.add_fn('__delattr__',
743743
('self', 'name'),
744744
(f' if {condition}:',
745745
' raise FrozenInstanceError(f"cannot delete field {name!r}")',
746-
f' super(cls, self).__delattr__(name)'),
746+
f' super(__class__, self).__delattr__(name)'),
747747
locals=locals,
748748
overwrite_error=True)
749749

0 commit comments

Comments
 (0)