TGViewer
Python: задачки и вопросы Python: задачки и вопросы @quiz_python · 6.91K subscribers
Post #3740 1.27K
Одна из новых возможностей, появившихся в Python 3.7, — классы данных (Data classes). Эти классы предназначены для автоматизации генерации кода, который используется для хранения данных.

Многие разработчики сталкиваются с необходимостью создавать подобные классы:


class RegularGuitar:
def __init__(self, brand, model):
self.brand = brand
self.model = model


Уже на этом примере можно заметить избыточность: идентификаторы brand и model повторяются несколько раз. Более сложный класс может также содержать переопределенные методы eq и repr.

Для упрощения процесса создания таких классов модуль dataclasses предлагает декоратор @dataclass. С его помощью аналогичный код будет выглядеть так:


from dataclasses import dataclass

@dataclass
class Guitar:
brand: str
model: str


Теперь классы стали более читаемыми и лаконичными, а также сохраняют важные методы, такие как __eq__ и __repr__, которые автоматически генерируются.
More from @quiz_python
  1. Oct 1, 2026Развёрнутое пояснение: 1. Кортеж regions задаёт два ключа: eu и us. 2. dict.fromkeys(regio…
  2. Oct 1, 2026Post #4906
  3. Sep 30, 2026Развёрнутое пояснение: 1. defaults содержит исходные значения timeout и retries, а env изн…
  4. Sep 30, 2026Post #4904
  5. Sep 29, 2026Развёрнутое пояснение: 1. Создаётся функция load_rate, которая при вызове печатает строку…
  6. Sep 29, 2026Post #4902
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 →