Почему макет не работает, как ожидалось? - PullRequest
1 голос
/ 10 марта 2020

b.py:

from unittest.mock import patch

def hello():
    print("hello")
    return 1

@patch("b.hello", return_value="wow")
def fun(mock_hello):
    print(hello())

print("start")
fun()
print("end")

Я использую python3:

pie@pie:~$ python3 --version
Python 3.6.9

Для приведенного выше кода я ожидаю получить следующий, потому что я высмеял hello:

start
wow
end

Но на самом деле, я получил следующее:

pie@pie:~$ python3 b.py
start
start
wow
end
hello
1
end

Я был совершенно сбит с толку насмешливым поведением, что случилось?

...