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