class Key(str): def __hash__(self): return 1 def __eq__(self, other): return Key.eq eq = False a = Key("a") b = Key("b") assert hash(a) == hash(b) assert a != b kw = {a: 1, b: 2} Key.eq = True assert hash(a) == hash(b) assert a == b print("call with:", kw) kw2 = dict(**kw) print("got:", kw2)