Встречается на собеседованиях • сегодня
В чем сходства между 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
интервью вопросы и ответы