TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.92K subscribers
Post #4901 125
Python: задачки и вопросы
Развёрнутое пояснение:

1. При создании класса __slots__ разрешает экземплярам хранить атрибут lines, но не создаёт для них словарь __dict__.

2. Декоратор cached_property заменяет метод total дескриптором, который должен один раз вычислить результат и записать его в __dict__ экземпляра.

3. Конструктор успешно сохраняет переданный список в предусмотренный слот lines.

4. При чтении total дескриптор сначала пытается получить __dict__ объекта для будущей записи кэшированного значения. До вызова функции с sum дело не доходит.

5. Поскольку у экземпляра нет __dict__, cached_property возбуждает TypeError. Аргумент print не вычислен, поэтому в стандартный вывод ничего не попадает.

Почему это важно

Задача относится к взаимодействию дескрипторов и модели хранения атрибутов. В проектах __slots__ применяют для сокращения памяти, а cached_property — для ленивых вычислений. Их прямое сочетание требует добавить __dict__ в __slots__ либо выбрать другой способ хранения кэша.
  • ✍ 1
More from @quiz_python
  1. Sep 26, 2026Post #4900
  2. Sep 26, 2026Развёрнутое пояснение: 1. deque создаёт очередь из a и b с максимальной длиной 3. 2. appen…
  3. Sep 26, 2026Post #4898
  4. Sep 25, 2026Развёрнутое пояснение: 1. defaultdict(int) создаёт словарь, в котором фабрика int возвраща…
  5. Sep 25, 2026Post #4896
  6. Sep 25, 2026Развёрнутое пояснение: 1. Создаётся контекстная переменная request_id без значения по умол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →