Message312496
> @dataclass
> class Foo:
> x: dict = field(default_factory=dict)
> @dataclass
> class Bar(Foo):
> y: int = 1
> @dataclass
> class Baz(Foo):
> def blorf(self):
> print('hello')
> Foo().x
{}
> Bar().x
{}
> Baz().x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() missing 1 required positional argument: 'x'
---
I understand that this is desired behavior when the subclass contains non-default attributes. But subclasses that define no additional attributes should work just the same as those that define only additional default attributes.
A similar issue was raised and dismissed when dataclasses was in development on GitHub: https://github.com/ericvsmith/dataclasses/issues/112, but that only concerned the case of subclasses defining non-default attributes. |
|
Date |
User |
Action |
Args |
2018-02-21 16:21:46 | John Didion | set | recipients:
+ John Didion |
2018-02-21 16:21:46 | John Didion | set | messageid: <1519230106.01.0.467229070634.issue32896@psf.upfronthosting.co.za> |
2018-02-21 16:21:45 | John Didion | link | issue32896 messages |
2018-02-21 16:21:45 | John Didion | create | |
|