Вопрос

Мне пришлось провести некоторый самоанализ на 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, если хотите манипулировать потоком печати.

Другие советы

Питон Осмотр модуль делает это намного проще и чище.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top