对于从dict派生的类,我可以只对从dict派生的方面进行深度复制吗?

时间:2014-11-07 09:47:53

标签: python dictionary python-2.x deep-copy

我有一个派生自dict的类的对象,其中添加了一些功能。然而,在某一点之后,程序的某些部分仅将其用作dict,因此附加功能不会对程序的这些部分起作用。

因此,为了确保没有被调用者可以操纵我的类实例的实际dict方面,我正在考虑"提取"它的dict方面使用copy.deepcopy

  1. 就是这样吗?
  2. 我该怎么把它拉下来?
  3. 在C ++中我能够dynamic_cast<>来获得我想要的类型。

1 个答案:

答案 0 :(得分:0)

dict对象将接受任何产生(key,value)元组的迭代(或任何类似对象的字典,请参阅1)。假设未在自定义对象上修改迭代,您应该可以执行类似的操作;

import copy
dict_version = copy.deepcopy(dict(dict_like_object))