On Sat, Oct 19, 2019, at 07:31, Steve White wrote: > Hi, > > I have an application that would benefit from object instances > distinguished by identity being used in dict's and set's. To do this, > the __hash__ method must be overridden, the obvious return value being > the instance's id. > > This works flawlessly in extensive tests on several platforms, and on > a couple of different Python versions and implementations. > > The documentation seems to preclude a second requirement, however. > > I also want to use the == operator on these objects to mean a natural > comparison of values, different from identity, so that two instances > comparing equivalent does not imply that they are identical.
I'd like to jump in to this thread to note that while this is reasonably easily achieved with a custom mapping class that uses a dict along with a wrapper class that stores the identity... I once tried to make a WeakKeyDictionary that was keyed by identity and had no end of trouble. -- https://mail.python.org/mailman/listinfo/python-list