Я программирую какую-то симуляцию с данными, организованными в виде дерева.Основным объектом является World
, который содержит набор методов и список City
объектов.Каждый объект City
в свою очередь имеет набор методов и список объектов Population
.У Population
объектов нет собственного метода, они просто содержат атрибуты.
Мой вопрос касается последних Population
объектов, которые я могу либо извлечь из object
, либо создать как словари.Каков наиболее эффективный способ их организации?
Вот несколько случаев, которые иллюстрируют мои сомнения:
Сохранение данных
Мне нужно иметь возможность сохранить и загрузить симуляцию, для чего я использую встроенный JSON (я хочу, чтобы данные были удобочитаемыми для человека).Поскольку программа организована в виде дерева, сохранение данных на каждом уровне может быть громоздким.В этом случае совокупность лучше всего хранить в виде словаря, добавляемого в список population
, в качестве атрибута экземпляра City
.Таким образом, сохранение - это просто передача City
экземпляра __dict__
в Json.
Использование данных
Если я хочу манипулировать данными о населении, этопроще как экземпляр класса, чем как словарь.Мало того, что синтаксис прост, но я также могу наслаждаться функциями самоанализа лучше при кодировании.
Производительность
Я, наконец, не уверен, что является наиболее эффективным с точки зренияресурсов.Объект и словарь имеют небольшую разницу в конце, поскольку каждый объект имеет атрибут __dict__
, который можно использовать для доступа ко всем его атрибутам.Если я запущу симуляцию с большим количеством объектов City
и Population
, что будет использовать меньше ресурсов: объекты или словари?
Итак, еще раз, каков наиболее эффективный способ организации данных вдерево?Словари или объекты предпочтительнее?Или есть какой-то секрет в организации деревьев данных?