Есть файл first.py, там
def sample():
print("123")
Есть файл second.py, там
from first.py import *
def wrapper(func):
def wrapped(arg):
open("file", "w").write(arg)
return(wrapped)
print=wrapped(print)
sample()
print(" 22")
// мог ошибиться, пишу с телефона
Когда вызывается second.py, функция print внутри sample() сохраняет своё прежнее поведение. А внешний принт меняет.
Если заменить from blabla import * на import blabla; blabla.print=wrapped(print), то всё работает.