Re: Python __hash__ return value - what use is it?
Lawrence D’Oliveiro <[email protected]> Sun, 31 May 2026 09:25:32 -0000 (UTC)
| Newsgroups | comp.lang.python |
|---|---|
| Organization | A noiseless patient Spider |
| Message-ID | <[email protected]> |
On Sun, 31 May 2026 08:28:46 -0000 (UTC), Veek M wrote:
> However when I print the set I see individual instances though I
> want the instances to be the treated the same .ie there should be
> just one instance in the set because the return value from __hash__
> is always 1.
>
> In the dictionary when I print it I see the instances as individual
> keys though I want to see a single key - what gives??
Just tried your code in a Jupyter notebook under Python 3.13.12, and
this was the output:
in __bool__
true
-----
in __hash__
in __hash__
in __eq__ <__main__.MyClass object at 0x7f68a86a4410>
{<__main__.MyClass object at 0x7f68a8691400>}
-----
in __hash__
in __hash__
in __eq__ <__main__.MyClass object at 0x7f68a86a4410>
{<__main__.MyClass object at 0x7f68a8691400>: '20'}
As you expected, only a single element in the set, and only a single
entry in the dict.