Словарь | класс | именной кортеж из YAML
У меня есть YAML-файл большого размера (~40 строк), который я загружаю с помощью PyYAML. Это, конечно, разбирается в большой словарь плюс несколько массивов.
У меня вопрос: как управлять данными. Я, конечно, могу оставить его в словаре вывода и работать с данными. Но мне было интересно, лучше ли вместо этого манипулировать данными в классе или использовать именной кортеж для хранения данных.
Есть опыт из первых рук об этом?
1 ответ
Независимо от того, выполняете ли вы постобработку структуры данных в классе или нет, это в первую очередь связано с тем, как вы используете эти данные. То же самое относится и к решению, использовать ли тег или нет, и загружать (частично отключенные) данные из файла YAML таким образом в конкретный экземпляр класса.
Основное преимущество использования класса в обоих случаях (постобработка, тегирование) заключается в том, что вы можете выполнять дополнительные тесты во время инициализации на предмет согласованности, которые не выполняются для пар ключ-значение в элементе dict или в элементах списка.
Класс также позволяет вам предоставлять методы для проверки значений до их установки, например, чтобы убедиться, что они имеют правильный тип.
Необходимость этих накладных расходов зависит от проекта, кто использует и / или обновляет данные и т. Д., А также от того, как долго этот проект и его данные будут жить (т.е. вы все еще будете понимать данные и их неявную структуру через год). Это все проблемы, для которых может помочь хорошо спроектированный (и задокументированный) класс, за счет некоторой дополнительной предварительной работы.