Modulmethode überschreiben, bei der der Import von ... verwendet wird

Ich habe ein Problem damit, die Methode zu überschreiben, bei der die import-Anweisung verwendet wird. Ein Beispiel zur Veranschaulichung des Problems:

# 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()

Ich möchte die Methode print_message (msg) überschreiben, ohne den Code in einem oder einem b-Modul zu ändern. Ich habe es in vielerlei Hinsicht versucht, aber aus ... importieren importiert Originalmethode. Als ich den Code in geändert habe

import a
a.print_message

als ich meine Veränderung sehe.

Könnten Sie mir vorschlagen, wie Sie dieses Problem lösen können?
Vielen Dank im Voraus für ein kleines Beispiel.

Freundliche Grüße

------------------ Update ------------------
Ich habe versucht, dies wie folgt zu tun:

# 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

Aber dies funktioniert nicht, wo ich für ... import Anweisung verwende. Funktioniert nur für den Import, aber wie ich geschrieben habe, möchte ich den Code in den Modulen b.py und a.py nicht ändern.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage