【发布时间】:2014-11-07 09:47:52
【问题描述】:
我有一个从dict 派生的类的对象,并添加了一些功能。然而,在某个时间点之后,它仅被程序的某些部分用作dict,因此附加功能对程序的这些部分没有任何作用。
因此,为了确保没有被调用者能够操纵我的类实例的实际 dict 方面,我正在考虑使用 copy.deepcopy“提取”其 dict 方面。
- 这可能吗?
- 如何实现?
在 C++ 中,我可以通过 dynamic_cast<> 获得我想要的类型。
【问题讨论】:
-
见鬼,就做
dict(instance_of_subclass)。dict会认为它是它自己的一个,只要你没有自定义迭代到dict不会接受它的地步。 -
@Lord_DeathMatch:我没有自定义这方面。这是否仍需要后续的
deepcopy? -
不确定,取决于您是否不希望新字典中的对象影响
dict-like 对象中的原始对象。取决于您的用例 -
@Lord_DeathMatch:好的,那是的。我不希望他们受到影响。请写下来作为答案。我目前正在验证它是否按预期工作。然后将能够投票和接受;)
标签: python dictionary python-2.x deep-copy