![](https://secure.gravatar.com/avatar/2828041405aa313004b6549acf918228.jpg?s=120&d=mm&r=g)
On 1/29/2018 3:42 AM, Ethan Furman wrote:
On 01/28/2018 07:45 AM, Eric V. Smith wrote:
On 1/6/2018 5:13 PM, Eric V. Smith wrote:
On 12/10/2017 5:00 PM, Raymond Hettinger wrote:
2) Change the default value for "hash" from "None" to "False". This might take a little effort because there is currently an oddity where setting hash=False causes it to be hashable. I'm pretty sure this wasn't intended ;-)
I haven't looked at this yet.
I think the hashing logic explained in https://bugs.python.org/issue32513#msg310830 is correct. It uses hash=None as the default, so that frozen=True objects are hashable
In a class, `__hash__ = None` means the instances are not hashable... but in a dataclass decorator, `hash=None` means they are?
It means "don't add a __hash__ attribute, and rely on the base class value". But maybe it should mean "is not hashable". But in that case, how would we specify the "don't add __hash__" case? Note that "repr=False" means "don't add a __repr__", not "is not repr-able". And "init=False" means "don't add a __init__", not "is not init-able". Eric.