[Python-Dev] Dataclasses and correct hashability
David Mertz
mertz at gnosis.cx
Tue Feb 6 14:57:23 EST 2018
Honestly, the name I would most want for the keyword argument is '_hash'.
That carries the semantics I desire.
On Feb 6, 2018 10:13 AM, "Ethan Furman" <ethan at stoneleaf.us> wrote:
> On 02/06/2018 09:38 AM, Guido van Rossum wrote:
>
> Where do you get the impression that one would have to explicitly request
>> __hash__ if frozen=True is set? To the
>> contrary, my proposal is for @dataclass to automatically add a __hash__
>> method when frozen=True is set. This is what the
>> code currently released as 3.7.0b1 does if hash=None (the default).
>>
>
> Which is my issue with the naming -- although, really, it's more with the
> parameter/argument: in a hand-written class,
>
> __hash__ = None
>
> means the object in is not hashable, but with the decorator:
>
> @dataclass(..., hash=None, ...)
>
> it means something else.
>
> My preference for "fixing" the issue:
>
> 1) make the default be a custom object (not None), so that `hash=None`
> means disable hashing
>
> 2) change the param name -- maybe to `add_hash` (I agree with D'Aprano
> that `unsafe_hash` can be misleading)
>
> --
> ~Ethan~
> _______________________________________________
> 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/mertz%
> 40gnosis.cx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20180206/172290ce/attachment.html>
More information about the Python-Dev
mailing list