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@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