Python模拟返回值

Nam*_*Ngo 2 python mocking

通常,在使用模拟时,我会有

from mock import Mock

m = Mock()
m
<Mock id='4334328720'>
Run Code Online (Sandbox Code Playgroud)

是否可以更改此输出?

小智 5

当然.您可以从Mock继承并更改__repr__方法:

from mock import Mock
class Mock2(Mock):
    def __repr__(self):
        return "Hello World!"

m = Mock2()

>> m
Hello World!
Run Code Online (Sandbox Code Playgroud)

您还可以动态更改__repr__对象的方法,如下所示:

from mock import Mock
m = Mock()

def new_repr(self):
    return "Hello dynamic Python!"
m.__repr__ = new_repr

>> m
Hello dynamic Python!
Run Code Online (Sandbox Code Playgroud)