Объект является хешируемым, если он либо имеет метод __hash__() и __eq__() (у которого равные объекты имеют одинаковый хеш), либо если он является неизменяемым встроенным объектом (типа строки, числа, кортежа), для которых такое поведение гарантировано. Проверить можно с помощью функции hash(). Если она успешно выполняется, объект хешируемый. Если нет, выбросит TypeError.
python
Также можно использовать функцию isinstance с collections.abc.Hashable (хотя это не гарантирует корректность __eq__):
python
Хешируемые объекты необходимы для использования в качестве ключей в словарях (dict) и элементов в множествах (set).