Встречается на собеседованиях • сегодня
В чем разница между @dataclass и обычным классом в Python
@dataclass — это декоратор из модуля dataclasses, который автоматически генерирует стандартные методы (__init__, __repr__, __eq__ и др.) для класса, сокращая boilerplate-код. Основные отличия от обычного класса:
- Автоматические методы:
В@dataclassне нужно вручную писать__init__,__repr__и другие методы, если поля класса объявлены с аннотациями типов.
-
Сравнение объектов:
@dataclassавтоматически реализует__eq__для сравнения по полям (еслиeq=True). -
Неизменяемость:
Можно сделать класс неизменяемым черезfrozen=True. -
Значения по умолчанию:
Полям можно задавать значения по умолчанию прямо в объявлении.
Пример:
python
from dataclasses import dataclass
@dataclass
class Point:
x: int
y: int = 0 # значение по умолчанию
# Автоматически создан __init__, __repr__ и __eq__
p1 = Point(1, 2)
p2 = Point(1, 2)
print(p1 == p2) # True (сравнение по полям)Обычный класс потребовал бы ручной реализации этих методов. @dataclass упрощает работу с классами-контейнерами данных.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы