This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author John Didion
Recipients John Didion
Date 2018-02-21.16:21:45
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1519230106.01.0.467229070634.issue32896@psf.upfronthosting.co.za>
In-reply-to
Content
> @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.
History
Date User Action Args
2018-02-21 16:21:46John Didionsetrecipients: + John Didion
2018-02-21 16:21:46John Didionsetmessageid: <1519230106.01.0.467229070634.issue32896@psf.upfronthosting.co.za>
2018-02-21 16:21:45John Didionlinkissue32896 messages
2018-02-21 16:21:45John Didioncreate