У мене проблеми із заміною функції з іншого модуля на іншу, і це зводить мене з розуму.
Скажімо, у мене є модуль 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!
Що я роблю не так?