为什么有专门的patch.dict?

4 投票
1 回答
12934 浏览
提问于 2025-04-18 15:31

我发现Python内部处理字典对象的方式和处理其他对象,比如函数和列表,是不一样的。

有没有人知道为什么Python的mock库(1.0.1)特别有一个patch.dict,除了已有的patch和patch.object?

1 个回答

15

patch.dict() 是一个用来在特定范围内设置字典值的工具,测试结束后会把字典恢复到原来的状态:

foo = {'key': 'value'}
original = foo.copy()

with patch.dict(foo, {'newkey': 'newvalue'}, clear=True):
    assert foo == {'newkey': 'newvalue'}

assert foo == original

想了解更多信息,可以查看这个参考资料

撰写回答