Вместо рефакторинга такого кода можно воспользоваться менеджером контекста
contextlib.redirect_stdout, который позволяет временно перенаправить stdout в любой объект, поддерживающий файловый интерфейс. В сочетании с io.StringIO это позволяет сохранить вывод в переменную.
from contextlib import redirect_stdout
from io import StringIO
s = StringIO()
with redirect_stdout(s):
print(42)
print(s.getvalue())
Также существует
contextlib.redirect_stderr для перенаправления вывода sys.stderr.📲 Мы в MAX
👉@BookPython