[Python-Dev] Concerns about method overriding and subclassing with dataclasses (original) (raw)

Ethan Smith ethan at ethanhs.me
Mon Jan 1 22:50:00 EST 2018


On Mon, Jan 1, 2018 at 5:03 PM, Chris Barker <chris.barker at noaa.gov> wrote:

On Sat, Dec 30, 2017 at 7:27 AM, Stephen J. Turnbull <_ _turnbull.stephen.fw at u.tsukuba.ac.jp> wrote:

Just use the simple rule that a new repr is generated unless provided in the dataclass.

are we only talking about repr here ??? I interpretted Guido's proposal as being about all methods -- we may want something special for repr, but I hope not. But +1 for Guido's proposal, not only because it's easy to explain, but because it more naturally follows the usual inheritance logic: The decorator's entire point is to auto-generate boilerplate code for you. Once it's done that it shouldn't, in the end, behave any differently than if you hand wrote that code. If you hand wrote the methods that the decorator creates for you, they would override any base class versions. So that's what it should do. And the fact that you can optionally tell it not to in some particular case keeps full flexibility. -CHB

I interpreted this to be for all methods as well, which makes sense. Special casing just repr doesn't make sense to me, but I will wait for Guido to clarify.

> I grant that there may be many reasons why one would be deriving

dataclasses from dataclasses Will you get the "right" repr now if you derive a datacalss from a dataclass? That would be a nice feature.

The repr will be generated by the child dataclass unless the user overrides it. So I believe this is the "right" repr.

~>Ethan Smith

-CHB -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker at noaa.gov


Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/ ethan%40ethanhs.me -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20180101/94ff0738/attachment.html>



More information about the Python-Dev mailing list