hashability
Hashability is the property of an object that allows it to be used as a key in a hash table or to be stored in a set. An object is hashable if it has a hash value that does not change during its lifetime and can be compared for equality. Hashing enables fast lookup, insertion, and deletion by mapping keys to buckets using a hash function. The hash function produces an integer from the object's value; due to finite buckets, different objects may share a hash value (collisions).
In many languages, including Python and Java, hashability is tied to immutability and the equality relation.
General contract: if a == b, then hash(a) == hash(b). Hash values need not be unique; equal hash
Beyond Python, many languages require immutability or properly defined equals and hashCode methods to ensure correct