Веб-версияОткрыть в Telegram

ПостРазвёрнутое пояснение:

29 августа 2026
P
Python: задачки и вопросы
ОтветОпрос
Развёрнутое пояснение: 1. Декоратор dataclass(frozen=True) генерирует для Client методы __init__, __repr__, __eq__ и __hash__. 2. __eq__ у frozen dataclass сравнивает все поля экземпляров. У a name='a', у b name='b', поэтому a!= b. 3. __hash__ тоже строится по всем полям, поэтому hash(a)!= hash(b). 4. Словарь cache размещает a и b в разные корзины. После cache[a] = 'old' и cache[b] = 'new' в словаре два элемента. 5. Обращение cache[a] возвращает значение, связанное с a, то есть 'old'. Итоговый вывод: old 2. Почему это важно: dataclass часто используют как ключи dict или элементы set, и поведение зависит от того, какие поля входят в равенство. frozen=True решает проблему изменяемости, но не помогает, если логика идентичности подразумевает только часть полей. В реальном коде это приводит к дублям в кеше, утечке памяти и неверным попаданиям при поиске.
329 ·

Рядом в ленте

PPython: задачки и вопросыРазвёрнутое пояснение: 1. Создаётся список services = ['api', 'auth', 'db']. 2. Вызов dict.fromkeys(services, []) создаёт словарь, где каждому ключу присвоена сPPython: задачки и вопросыОпрос
это сообщение
PPython: задачки и вопросыОпросPPython: задачки и вопросыРазвёрнутое пояснение: 1. Создаётся внутренний список ['', '', ''] — три пустые строки. 2. Выражение [внутренний_список] * 3 создаёт новый список из трёх элемен
PPython: задачки и вопросыPython: задачки и вопросы@quiz_python · канал · Технологии
6 903подписчиков253средний охват поста
Лента площадки Открыть в Telegram

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

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