Хватит использовать namedtuple #python #IT

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

В ответ другим комментаторам. Использовать collections.namedtupe не рекомендуется никому из-за невозможности корректно указать типы в первую очередь. Если уж так нужно, чтобы ваши датаклассы можно было распаковывать, используйте хотя бы typing.NamedTuple как более современную замену.

qbert
Автор

Горький опыт программирования на Java подсказывает мне, что Сурен абсолютно прав. Распаковка будто бы в долгосрочной перспективе несёт больше проблем, чем добра. Её всегда можно добавить при надобности для датакласса, но убрать из NamedTuple этот (возможно, вредный) функционал уже так просто не получится.

qbert
Автор

Часто использую namedtuple, когда нужен именно именованный иммутабельный кортеж, который можно читабельно создавать и удобно распаковывать - обычно это представление какой-либо записи в таблице/файле/бд. Само собой с использованием в словарях и множествах.
Преимуществ датакласса тут не вижу никаких, даже семантика немного не та.

Alexey-gpvc
Автор

NamedTuple – это кортеж, по которому можно итерироваться и который можно распаковать, в отличие от объекта dataclass. Если это свойство нужно, NamedTuple OK.

saitaro
Автор

Namedtuple занимает в 3.5 раз меньше памяти чем датакласс

TheZekas
visit shbcf.ru