我打算创建一个数据分发器类作为可变类:
class DataDistributor(object):
def __init__(self):
self.target_trackid = -1
def next_sen(self):
self.target_trackid += 1
return self.target_trackid
这样我就可以在数据上全局保存一个指针。在
我还有一门课:
^{pr2}$因此,当我创建许多Env
实例时,每个Env
实例将获得不同的数据点。在
所以我用这个来创建我的实例:
ddist = DataDistributor()
env = Env(ddist)
envs = [pickle.loads(pickle.dumps(env)) for _ in range(12)]
envs[0].reset()
envs[1].reset()
envs[2].reset()
print envs[0].target_trackid
print envs[1].target_trackid
print envs[2].target_trackid
结果都是一样的:一堆0
我不太确定Python是如何处理这个问题的:(如果有一个可行的解决方案来实现我想要实现的目标!在
pickle.load
将创建不同的对象,这意味着每个env
对象中的datadistributor
变量将被引用如何创建一个类变量来跟踪创建的对象?简单的类结构如下:
样本运行:
^{pr2}$传递不同类的对象只是为了跟踪其他类创建的对象,这绝对不是正确的方法。
相关问题 更多 >
编程相关推荐