Je ne parviens pas à remplacer une fonction d'un module différent par une autre et cela me rend fou.
Disons que j'ai un module bar.py qui ressemble à ceci:
from a_package.baz import do_something_expensive
def a_function():
print do_something_expensive()
Et j'ai un autre module qui ressemble à ceci:
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()
Je m'attendrais à obtenir les résultats:
Something expensive!
Something really cheap.
Something really cheap.
Mais au lieu de cela je reçois ceci:
Something expensive!
Something expensive!
Something expensive!
Qu'est-ce que je fais mal?