У меня возникли проблемы с заменой функции из другого модуля другой функцией, и это сводит меня с ума.
Скажем, у меня есть модуль 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!
Что я делаю неправильно?