Zastąp metodę modułu, z której używany jest… import

Mam problem z nadpisaniem metody, w której użyto instrukcji ... import. Przykład ilustrujący problem:

# a.py module
def print_message(msg):
    print(msg)

# b.py module
from a import print_message
def execute():
    print_message("Hello")

# c.py module which will be executed
import b
b.execute()

Chciałbym przesłonić metodę print_message (msg) bez zmiany kodu w module a lub b. Próbowałem na wiele sposobów, ale z ... importu importowałem oryginalną metodę. Kiedy zmieniłem kod na

import a
a.print_message

niż widzę moją zmianę.

Czy możesz zasugerować, jak rozwiązać ten problem?
Z góry dziękuję za mały przykład.

Z poważaniem

------------------ Aktualizacja ------------------
Starałem się to zrobić jak poniżej, np .:

# c.py module
import b
import a
import sys
def new_print_message(msg):
    print("New content")
module = sys.modules["a"]
module.print_message = new_print_message
sys.module["a"] = module

Ale to nie działa tam, gdzie używam for ... oświadczenie o imporcie. Działa tylko dla importu, ale jak pisałem, nie chcę zmieniać kodu w modułach b.py i a.py.

questionAnswers(1)

yourAnswerToTheQuestion