Steve White wrote: > Hi Peter, > > Yes you are right. In fact, I shouldn't even have mentioned the > hash() function... it came from a line of reasoning about what an > implementation might do if very large integers were returned by > __hash__(), and some remarks about the value returned by id() applied > to small integers. > > The point is, I don't think __eq__() is ever called in a situation as > described in my post, yet the Python documentation states that if > instances are to be used as keys, it must not be used to determine if > non-identical instances are equivalent.
What else should be used if not __eq__()? Where in the docs did you you see such a statement? The only limitation for a working dict or set is that for its keys or elements (1) a == b implies hash(a) == hash(b) (2) a == a Does your custom class violate one of the above? -- https://mail.python.org/mailman/listinfo/python-list