On 1/2/2018 12:01 AM, Guido van Rossum wrote:
On Mon, Jan 1, 2018 at 8:50 PM, Ethan Smith <et...@ethanhs.me <mailto:et...@ethanhs.me>> wrote:



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

        On Sat, Dec 30, 2017 at 7:27 AM, Stephen J. Turnbull
        <turnbull.stephen...@u.tsukuba.ac.jp
        <mailto:turnbull.stephen...@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 interpreted Guido's proposal as being about all methods -- we
        _may_ want something special for __repr__, but I hope not.

        [...]


    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.


Indeed, I just wrote __repr__ for simplicity. This should apply to all special methods. (Though there may be some complications for __eq__/__ne__ and for the ordering operators.)

On Mon, Jan 1, 2018 at 9:44 PM, Chris Barker <chris.bar...@noaa.gov <mailto:chris.bar...@noaa.gov>> wrote:

    On Mon, Jan 1, 2018 at 7:50 PM, Ethan Smith <et...@ethanhs.me
    <mailto:et...@ethanhs.me>> wrote:


            Will you get the "right" __repr__ now if you derive a
            dataclass 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__.


    what I was wondering is if the child will know about all the fields
    in the parent -- so it could make a full __repr__.


Yes, there's a class variable (__dataclass_fields__) that identifies the parent fields. The PEP doesn't mention this or the fact that special methods (like __repr__ and __init__) can tell whether a base class is a dataclass. It probably should though. (@Eric)

I think that's covered in this section: https://www.python.org/dev/peps/pep-0557/#inheritance

Eric.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to