最佳答案
我在用另一个函数替换另一个模块的函数时遇到了麻烦,这快把我逼疯了。
假设我有一个模块 bar.py,它看起来像这样:
from a_package.baz import do_something_expensive
def a_function():
print do_something_expensive()
我还有另外一个模块,看起来像这样:
from bar import a_function
a_function()
from a_package.baz import do_something_expensive
do_something_expensive = lambda: 'Something really cheap.'
a_function()
import a_package.baz
a_package.baz.do_something_expensive = lambda: 'Something really cheap.'
a_function()
我希望得到结果:
Something expensive!
Something really cheap.
Something really cheap.
但相反,我得到了这个:
Something expensive!
Something expensive!
Something expensive!
我做错了什么?