hash() — Advanced Examples
Returns the hash value of an object (used in dicts and sets)
hash() protocol implementation
Implementing the protocol that hash() uses under the hood.
python
# Custom __hash__ for hashable objects class Point: def __init__(self, x, y): self.x = x self.y = y def __hash__(self): return hash((self.x, self.y)) def __eq__(self, other): return self.x == other.x and self.y == other.y points = {Point(1, 2), Point(3, 4), Point(1, 2)} print(len(points)) # 2, because Point(1,2) appears twice
Understanding the dunder methods that hash() calls helps you customize behavior for your own classes.
Edge cases with hash()
Handling unusual inputs and edge cases.
python
# hash() edge cases print("Edge case handling for hash()") # Type checking print(type(42))
Knowing these edge cases prevents subtle bugs in production.
Want to try these examples interactively?
Open Advanced Playground