我收到这个消息:

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相同:保存映射列表并按顺序访问它们。
不过,实际上执行字典合并通常比较简单。将复制支持添加到自定义类中并对其进行更新可能不是不可能的。

09-12 22:27