Using object id as a hash for objects in Python

hash, python

Solution

Yes, as long as you also define `__eq__` (and presumably `__ne__`!-) consistently with that. IOW, it's fine, as long as you're fine with `a==b` meaning exactly the same as `a is b`!-)

Problem

Is it wise to use the object `id` as a hash key (via. the `__hash__`) to be able to hash an otherwise mutable object for a single instance of a program? Using the object attributes would be nicer but they're all mutable and can change. This occurred to me while looking at Sets of instances and I'm wondering if it's wise.

Original source