У меня есть проблема для переопределения метода, из которого используется оператор... import. Пример для иллюстрации проблемы:
# 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()
Я хотел бы переопределить метод print_message (msg) без изменения кода в модуле a или b. Я пытался во многих отношениях, но из... импорт импортирует оригинальный метод. Когда я изменил код на
import a
a.print_message
чем я вижу свое изменение.
Не могли бы вы предложить мне, как решить эту проблему?
Заранее спасибо за любой маленький пример.
С наилучшими пожеланиями
------------------ Обновление ------------------
Я попытался сделать это, например, ниже:
# 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
Но это не работает, когда я использую для... import statement. Я работаю только для импорта, но, как я писал, я не хочу изменять код в модулях b.py и a.py.