다른 모듈의 기능을 다른 기능으로 교체하는 데 문제가있어 미치게 만듭니다.
다음과 같은 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!
내가 도대체 뭘 잘못하고있는 겁니까?