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

>
>
> On Mon, Jan 1, 2018 at 5:03 PM, Chris Barker <chris.bar...@noaa.gov>
> wrote:
>
>> On Sat, Dec 30, 2017 at 7:27 AM, Stephen J. Turnbull <
>> 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> wrote:

> On Mon, Jan 1, 2018 at 7:50 PM, Ethan Smith <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)

-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
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