chibinz · GitHub

Bug report

Bug description:

import collections
global count
count = 0
class Evil():
    def __eq__(self, other):
        global count
        print(count)
        if count == 1:
            l.clear()
            print("cleared l")
        count += 1
        return True
    def __hash__(self):
        return 3
l = collections.OrderedDict({Evil(): 4, 5: 6})
r = collections.OrderedDict({Evil(): 4, 5: 6})
print(l == r)

CPython versions tested on:

3.10, 3.13

Operating systems tested on:

Linux

Linked PRs

Read the original on github.com ↗