根据其他答案,通常的建议是避免使用
iteritems(
items改为使用)。当然,这 不是
您的选择,因为该
iteritems调用是在系统调用的最深处代表您完成的。
因此,我建议,假设
Auxiliar.DataCollection.getInfo(1)返回一个字典(在复制过程中正在更改的字典),那就是您将
deepcopy调用更改为:
self.data1 = copy.deepcopy(dict(Auxiliar.DataCollection.getInfo(1)))
这需要对所讨论的字典进行“快照”,并且快照不会更改,因此您会很好。
如果
Auxiliar.DataCollection.getInfo(1)确实 无法
返回的字典,但一些更复杂的对象,其中包括作为类型的字典和/或项目的属性,这将是一个比较复杂一点,因为这些类型的字典是你需要什么样的快照。但是,在这种情况下是不可能具体化的,因为您绝对不了解构成该关键
Auxiliar.DataCollection.getInfo(1)调用的代码!-)



