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