Tengo problemas para reemplazar una función de un módulo diferente con otra función y me está volviendo loco.
Digamos que tengo un módulo bar.py que se ve así:
from a_package.baz import do_something_expensive
def a_function():
print do_something_expensive()
Y tengo otro módulo que se parece a esto:
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()
Esperaría obtener los resultados:
Something expensive!
Something really cheap.
Something really cheap.
Pero en cambio obtengo esto:
Something expensive!
Something expensive!
Something expensive!
¿Qué estoy haciendo mal?