我收到这个消息:
RemovedInDjango19Warning: MergeDict is deprecated, use dict.update() instead.
当前代码:
return MergeDict(dict_a, dict_b)
这不是解决方案,因为
dict_a
被修改:return dict_a.update(dict_b) #1
而且
dict_a
是一个不支持复制的自定义类的实例(它很懒,根据键动态创建项),因此我不能简单地执行以下操作:new=dict()
new.update(dict_a)
new.update(dict_b)
return new
如何替换
MergeDict
? 最佳答案
您可以使用collections.ChainMap
。它的作用与MergeDict
相同:保存映射列表并按顺序访问它们。
不过,实际上执行字典合并通常比较简单。将复制支持添加到自定义类中并对其进行更新可能不是不可能的。