对不起,如果标题不是很清楚。我不确定适当的标题。让我解释我需要什么。我应该复制一个类的实例来实现这个吗?如果是的话,我该怎么做?
我正在做一个模拟的多个运行,其中每个运行对应一个不同的种子。但是,我希望类的实例的起始特性在不同的运行中保持不变。例如,考虑一个城市中的人员类别。在下面的代码中,命令city = people()
创建人员对象,每个对象都有一些财富是从分配中随机选择的。让F(。)成为人口中财富的实现初始分配。随着模拟的一次特定运行,事物在人口中发生变化,并且人物对象的各种属性得到更新。例如,一个人的收入变化。这些属性的最终值取决于模拟运行期间发生的一些随机实现。现在我想用一个不同的随机种子来再次运行模拟,在运行开始之前,所有属性都重置为它们的初始值(包括随机确定的财富分布)。我应该做一个浅拷贝还是一个deepCopy?还有第三种方式更好吗?
谢谢了。
city = people()
for seedValue in ListOfSeeds:
cityThisInstance = city.copy()
cityThisInstance.someAttribute = xxxxx
cityThisInstance.anotherAttribute = yyyyy
Rest of the code
谢谢尼克。由于初始状态具有一些使用random.uniform函数确定的变量,因此我无法重新初始化该类。如果我使用您建议的第一种方法重新初始化,这些值将会改变。但第二个应该工作。我会尝试。谢谢。 – Curious2learn 2010-08-25 01:03:33