首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python模拟调用两次的类方法

Python模拟调用两次的类方法
EN

Stack Overflow用户
提问于 2020-08-28 04:20:17
回答 2查看 82关注 0票数 1

我正在尝试模拟类和方法,但是很难理解重复的输出。我有以下几点:

代码语言:javascript
复制
from unittest import mock

class SimpleClass(object):
    def explode(self):
        return 'KABOOM!'

def test_simple_class():
    obj = SimpleClass()
    print(obj.explode())

test_simple_class() # displays 'KABOOM!'

@mock.patch("testing.SimpleClass")
def mock_simple_class(mock_class):
    print(f'mock_class:{mock_class}')

mock_simple_class()

在执行上面的代码时,我收到以下信息:

代码语言:javascript
复制
KABOOM!
KABOOM!
mock_class:<MagicMock name='SimpleClass' id='4302975248'>
mock_class:<MagicMock name='SimpleClass' id='4302270416'>

任何有用的建议都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2020-08-28 06:13:51

当使用补丁时,将执行此模块的导入,从而执行此模块。当我将测试从实际的执行模块中分离出来时,这将不是一个问题。

票数 1
EN

Stack Overflow用户

发布于 2020-08-28 05:43:20

我想这是因为代码将“obj”定义为KABOOM!同时也将“爆炸”定义为KABOOM!因此,当它打印它时,它会找到两个定义为KABOOM的对象!所以把它们都打印出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63623650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档