Python Разработка | Web Backend, Парсинг & Telegram Bots. Пайтон программирование с нуля. Django, FastAPI и SQL. Уроки для начинающих и IT карьера. Coding.
Образование · 19 мая 2026 г.
Ты можешь использовать любой объект в качестве ключа словаря в Python, если он реализуе... — 19 мая 2026 г. в 14:24:30.370
Ты можешь использовать любой объект в качестве ключа словаря в Python, если он реализует метод __hash__. Этот метод может возвращать любое целое число при одном важном условии: равные объекты должны иметь одинаковые хэши (обратное не обязательно). Также следует избегать использования изменяемых объектов в качестве ключей, потому что если объект изменится и перестанет быть равным самому себе в прошлом состоянии, его больше нельзя будет найти в словаре. Есть ещё один странный момент, который может удивить при отладке или написании юнит-тестов: class A: def __init__(self, x): self.x = x def __hash__(self): return self.x hash(A(2)) # 2 hash(A(1)) # 1 hash(A(0)) # 0 hash(A(-1)) # -2 (!) hash(A(-2)) # -2 В CPython значение -1 зарезервировано для внутренних состояний ошибок, поэтому оно автоматически преобразуется в -2. 👉 @BookPython

