Какой надежный способ узнать хешируемый ли объект

Python Middle Без компании
Какой надежный способ узнать хешируемый ли объект
Ответы
В Python объект считается хешируемым, если он имеет метод `__hash__()` и его хеш-значение никогда не меняется. Надежный способ проверить хешируемость — использовать функцию `hash()`, которая вызовет `TypeError` для нехешируемых объектов. ``` def is_hashable(obj): try: hash(obj) return True except TypeError: return False print(is_hashable(42)) # True (int хешируем) print(is_hashable("hello")) # True (str хешируем) print(is_hashable([1, 2])) # False (list нехешируем) print(is_hashable((1, 2))) # True (tuple хешируем, если элементы хешируемы) ``` **Важно:** Кортеж хешируем только если все его элементы хешируемы. Например, `([1, 2], 3)` вызовет `TypeError`, так как содержит список.