TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.92K subscribers
Post #4169 932
Задача выше тоже относится к теме слотов.

Что происходит:
1. Класс C - пустой базовый класс
2. Класс D наследует от C и имеет __slots__ = ['a'] - это означает, что экземпляры класса D могут иметь только атрибут a
3. X = D() - создается экземпляр класса D
4. X.a = 1 - устанавливается атрибут a (разрешенный слот)
5. X.b = 2 - устанавливается атрибут b (НЕ разрешенный слот)

Почему же в __dict__ только {'b': 2}? Когда вы используете, атрибуты, указанные в __slots__ (в данном случае a) хранятся в специальной структуре данных, а не в __dict__. Атрибуты, НЕ указанные в __slots__ (в данном случае b) хранятся в __dict__ как обычно.
  • ❤ 2
  • 👍 2
  • 👎 1
More from @quiz_python
  1. Sep 26, 2026Развёрнутое пояснение: 1. При создании класса __slots__ разрешает экземплярам хранить атри…
  2. Sep 26, 2026Post #4900
  3. Sep 26, 2026Развёрнутое пояснение: 1. deque создаёт очередь из a и b с максимальной длиной 3. 2. appen…
  4. Sep 26, 2026Post #4898
  5. Sep 25, 2026Развёрнутое пояснение: 1. defaultdict(int) создаёт словарь, в котором фабрика int возвраща…
  6. Sep 25, 2026Post #4896
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 →