1️⃣ Объект должен иметь метод `__hash__()`, который возвращает целое число — это и есть хеш объекта.
2️⃣ Хеш-значение не должно меняться в течение жизни объекта. Это важно, чтобы объект можно было использовать как ключ в словарях или элемент в множествах.
3️⃣Объект должен поддерживать сравнение через `__eq__()`. Если два объекта равны (по
==), они обязаны иметь одинаковый хеш.Простое правило:
— Неизменяемые объекты в Python (например,
int, float, str, tuple, frozenset) — хешируемы.— Изменяемые объекты (например,
list, dict, set) — не хешируемы.Библиотека собеса по Python