我收到此消息:
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
?
答案 0 :(得分:3)
您可以使用collections.ChainMap
。它与MergeDict
的作用相同:保留映射列表并按顺序访问它们。
然而,实际上执行字典的合并通常更简单。将复制支持添加到您的自定义类并且只是更新它可能是不可能的。