gpt4 book ai didi

python - 如何修补对象中的属性

转载 作者:太空狗 更新时间:2023-10-29 18:20:27 25 4
gpt4 key购买 nike

问题是如何在 with 语句中修补实例的属性。我尝试了以下不起作用的示例。它像评论中一样打印。

from mock import patch, PropertyMock

class Foo(object):
f = {'a': 1}

new_foo = Foo()

with patch.object(new_foo, 'f', new_callable=PropertyMock) as mock:
mock.return_value = {'b': 2}
print new_foo.f
# <PropertyMock name='f' id='4474801232'>

最佳答案

documentation 中有一个示例.您需要将类提供给 patch.object,而不是实例化对象。

from mock import patch, PropertyMock

class Foo(object):
f = {'a': 1}

new_foo = Foo()

with patch.object(Foo, 'f', new_callable=PropertyMock) as mock:
mock.return_value = {'b': 2}
print new_foo.f

print new_foo.f

输出:

{'b': 2}
{'a': 1}

关于python - 如何修补对象中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21074090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com