Objects retain info from previous loop iteration
本问题已经有最佳答案,请猛点这里访问。
我有一个名为
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import vars.Defaults as dft class run_c: ... dt = dft.dt x = dft.x0 states = [ [], [], [], [] ] ... def __init__(self, input): for key in input.keys(): if hasattr(self, key): setattr(self, key, input[key]) ... self.execute() |
不过,问题就在这里开始了。第一次创建、初始化和执行
1 2 3 4 5 6 7 | from Run import run_c def main(): ... for runEntry in runList: currRun = run_c(runEntry) ... ... |
实际情况是,在循环的每次迭代之后,存储在
更新:当我添加一行代码将
定义为类别变量,而不是实例变量。你创造的每一个阶级都会分享他们。如果你需要他们每一次创建一个新的论坛,这正是
1 2 3 4 5 6 7 8 9 10 11 12 13 | class run_c: def __init__(self, input): ... self.dt = dft.dt self.x = dft.x0 self.states = [ [], [], [], [] ] ... for key in input.keys(): if hasattr(self, key): setattr(self, key, input[key]) ... self.execute() |
加上现有的答案:您可以在EDOCX1&4中初始化这些变量。
ZZU1
如果你重新点击