Встречается на 1% собеседований по Python
В чем сходства между dataclass и namedtuple
Оба предоставляют удобный способ создания классов для хранения данных с автоматической генерацией boilerplate-кода.
Сходства:
- Автоматическая генерация методов:
__init__,__repr__,__eq__ - Иммутабельность:
namedtupleпо умолчанию неизменяем,dataclassможно сделать неизменяемым через@dataclass(frozen=True) - Доступ по имени атрибутов:
obj.field
Пример:
python
from collections import namedtuple
from dataclasses import dataclass
# namedtuple
PointNT = namedtuple('PointNT', ['x', 'y'])
# dataclass
@dataclass
class PointDC:
x: int
y: int
p_nt = PointNT(1, 2)
p_dc = PointDC(1, 2)
print(p_nt, p_dc) # PointNT(x=1, y=2) PointDC(x=1, y=2)Различия:
dataclassгибче (поддержка дефолтных значений, наследование, mutable/immutable)namedtupleлегковеснее и быстрее, но менее функционален.

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