python - 复杂字典的深拷贝
问题描述
我面临一个我看不到明确解决方案的问题。
我有一个嵌套字典,其中包含一些自定义对象的字典。我需要制作这本字典的深层副本,以便在不更改原始字典的情况下修改它的一些值。因此,我正在考虑制作字典的深层副本。
但是,由于某些原因,字典的键是具有覆盖__set_attr__()
方法的对象,该方法可以防止对属性进行任何修改。因此,似乎无法直接应用该copy.deepcopy()
方法。
请参阅下面的简短代码示例:
class SpecialKey:
__slots__ = ('asset', )
def __init__(self, asset):
super(SpecialKey, self).__setattr__('asset',asset)
def __setattr__(self):
raise AttributeError("SpecialKey should not be changed")
import copy
my_dict = {SpecialKey("test"): [1, 2, 3]}
my_dict_copied = copy.deepcopy(my_dict)
解决方案
推荐阅读
- javascript - 我需要帮助。似乎是我似乎找不到的基本工具
- java - How do I remove backslashes before quotes from a JSONObject string?
- security - 如何通过 ASP.Core Kestrel 中的代码禁用弱密码套装?
- twitter-bootstrap - magicSuggest 字段上的“必需”引导属性
- javascript - 单击输入类型编号中的 + 时,将数字乘以选择选项中的值传递
- c++ - 如何在 C++ 中获取操作系统名称?
- c# - 比较和组合字符串以获取重复项
- mulesoft - Using non Static Java Class in Mule
- javascript - How to shade outside a circle in JSXgraph
- python - How to paginate external API in Django Rest Framework