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.