Tôi đang gặp sự cố khi thay thế một chức năng từ một mô-đun khác bằng một chức năng khác và điều đó khiến tôi phát điên.
Giả sử tôi có một mô-đun bar.py trông giống như sau:
from a_package.baz import do_something_expensive
def a_function():
print do_something_expensive()
Và tôi có một mô-đun khác trông giống như thế này:
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()
Tôi mong đợi nhận được kết quả:
Something expensive!
Something really cheap.
Something really cheap.
Nhưng thay vào đó tôi nhận được điều này:
Something expensive!
Something expensive!
Something expensive!
Tôi đang làm gì sai?