Eric V. Smith <[email protected]> added the comment:
A related issue is that dataclasses derived from frozen dataclasses are
automatically "promoted" to being frozen.
>>> @dataclass(frozen=True)
... class A:
... i: int
...
>>> @dataclass
... class B(A):
... j: int
...
>>> b = B(1, 2)
>>> b.j = 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\home\eric\local\python\cpython\lib\dataclasses.py", line 452, in
_frozen_setattr
raise FrozenInstanceError(f'cannot assign to field {name!r}')
dataclasses.FrozenInstanceError: cannot assign to field 'j'
If this can't be addressed before 3.7, maybe it should be an error to declare B
as non-frozen and then we can properly fix it in a future release.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue32953>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com