словарь |класс |именной кортеж из YAML - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть большой YAML-файл (~ 40 строк), который я загружаю с помощью PyYAML.Это, конечно, разбирается в большой словарь плюс пара массивов.

Мой вопрос: как управлять данными.Я, конечно, могу оставить его в словаре вывода и работать с данными.Но мне было интересно, лучше ли вместо этого манипулировать данными в классе или использовать именной кортеж для хранения данных.

1 Ответ

0 голосов
/ 04 февраля 2019

Независимо от того, выполняете ли вы постобработку структуры данных в классе или нет, это в основном связано с тем, как вы используете эти данные.То же самое относится к решению, использовать ли тег или нет, и загружать (некоторые выкл.) Данные из файла YAML таким образом в конкретный экземпляр класса.

Основное преимущество использования класса в обоихСлучаи (постобработка, тегирование) заключается в том, что во время инициализации можно выполнить дополнительные тесты на согласованность, которые не выполняются для пар ключ-значение из dict или для элементов списка.

Класс также позволяетВы должны предоставить методы для проверки значений до их установки, например, чтобы убедиться, что они имеют правильный тип.

Необходимость этих накладных расходов зависит от проекта, кто использует и / или обновляет данные и т. Д., И как долго этот проект и его данные будут жить (т.е. вы все еще собираетесь понимать данные и ихнеявная структура через год).Это все проблемы, в которых может помочь хорошо спроектированный (и задокументированный) класс за счет некоторой дополнительной предварительной работы.

...