【发布时间】:2011-06-18 16:10:23
【问题描述】:
我正在编写某种模拟,其数据以树的形式组织。主要对象是World,它包含一堆方法和City 对象列表。每个City 对象又具有一堆方法和Population 对象列表。 Population 对象没有自己的方法,它们只是持有属性。
我的问题是关于后者Population 对象,我可以从object 派生或创建为字典。组织这些最有效的方法是什么?
这里有几个例子可以说明我的犹豫:
保存数据
我需要能够保存和加载模拟,为此我使用built-in json(我希望数据是人类可读的)。由于程序是按树组织的,因此在每个级别保存数据可能很麻烦。在这种情况下,最好将总体保存为附加到population 列表的字典,作为City 实例的属性。这样,保存只需将City 实例的__dict__ 传递给Json。
使用数据
如果我想操作人口数据,作为类实例比作为字典更容易。不仅语法简单,而且我还可以在编码时更好地享受自省功能。
性能
最后,我不确定在资源方面什么是最有效的。对象和字典到底差别不大,因为每个对象都有一个__dict__属性,可以用来访问它的所有属性。如果我使用大量 City 和 Population 对象运行我的模拟,什么将使用较少的资源:对象或字典?
那么,在树中组织数据的最有效方法是什么?字典或对象更可取吗?或者组织数据树有什么秘诀?
【问题讨论】:
标签: python object resources dictionary tree