Русский
Открыть в Telegram

Пост Ты можешь использовать любой объект в качестве ключа словаря в Python, если он реализует метод __hash__. Этот метод може…

19 мая 2026
Б
Библиотека Python разработчика | Книги по питону
Ты можешь использовать любой объект в качестве ключа словаря в 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. 📲 Мы в MAX 👉@BookPython
6 · 1.4K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуНекоторые модули Python компилируются непосредственно в сам интерпретатор. Они называются встроенными модулями (built-in), и их не следует путать со стандартнойББиблиотека Python разработчика | Книги по питонуВ Python 3, после выхода из блока except переменные, в которых хранятся перехваченные исключения, удаляются из locals(), даже если они существовали раньше: >>>
это сообщение
ББиблиотека Python разработчика | Книги по питонуЕсли декоратор, который вы пишете, становится слишком сложным, имеет смысл преобразовать его из функции в класс с методом __call__. class SavingOrig: def __initББиблиотека Python разработчика | Книги по питонуВ asyncio распространённая практика для планирования выполнения кода с задержкой — создать задачу, которая делает await asyncio.sleep(x): import asyncio async d
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 943подписчиков725средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем