Как мне выполнить monkeypatching на python?
-
09-06-2019 - |
Вопрос
Мне пришлось провести некоторый самоанализ на python, и это было некрасиво:
name = sys._getframe(1).f_code
name = "%s:%d %s()" %(os.path.split(name.co_filename)[1],name.co_firstlineno,name.co_name)
Чтобы получить что-то вроде
foo.py:22 bar() blah blah
В нашем отладочном выводе.
В идеале я бы хотел добавить что-нибудь в stderr с такой информацией -- Возможно ли изменить поведение print глобально в python?
Решение
Оператор print выполняет ввод-вывод через "sys.stdout.write", поэтому вы можете переопределить sys.stdout, если хотите манипулировать потоком печати.
Другие советы
Питон Осмотр модуль делает это намного проще и чище.
Не связан с StackOverflow