A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2018-January/151538.html below:

[Python-Dev] Concerns about method overriding and subclassing with dataclasses

[Python-Dev] Concerns about method overriding and subclassing with dataclassesGuido van Rossum guido at python.org
Tue Jan 2 00:01:15 EST 2018
On Mon, Jan 1, 2018 at 8:50 PM, Ethan Smith <ethan at ethanhs.me> wrote:

>
>
> 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 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.barker at noaa.gov> wrote:

> On Mon, Jan 1, 2018 at 7:50 PM, Ethan Smith <ethan at 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)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180101/c445078f/attachment.html>
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4