On Sun, 31 May 2026 09:25:32 -0000 (UTC), Lawrence D’Oliveiro wrote:
> 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.
Oh. hmm - sorry - I guess I misread the output - I was under the
impression there were two instances. Should have used len to check though.
--
https://mail.python.org/mailman3//lists/python-list.python.org