Встречается на собеседованиях • сегодня

В чем разница навесить или не навесить декоратор @dataclass

Декоратор @dataclass автоматически генерирует специальные методы (__init__, __repr__, __eq__ и др.) для класса, сокращая boilerplate-код. Без него эти методы нужно писать вручную.

Пример с @dataclass:

python
from dataclasses import dataclass

@dataclass
class Point:
x: int
y: int

text

Эквивалент без декоратора:
```python
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __repr__(self):
        return f"Point(x={self.x}, y={self.y})"
    
    def __eq__(self, other):
        return self.x == other.x and self.y == other.y

Ключевые отличия:

  1. @dataclass автоматически создает __init__, __repr__, __eq__
  2. Поддерживает type hints (но не проверяет типы)
  3. Можно добавить методы вручную при необходимости
  4. Есть дополнительные параметры: frozen=True, order=True и др.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы