Я отлаживаю огромную устаревшую кодовую базу, фактически перенося ее с python2 на python3. К сожалению, есть некоторые исключения, которые, как представляется, обрабатываются и печатаются, но предыдущий разработчик не был достаточно мудрым, чтобы печатать трассировку стека, которая могла бы сказать мне, где именно было вызвано исключение.Можно ли переопределить печать() по всему миру?
В частности, я также портировать код с GTK + 2 на GTK + 3, и я получаю много этих выходных линий:
TypeError: expose() missing 1 required positional argument: 'event'
На данный момент, кажется, что единственный вариант слева, чтобы во всем мире захватить функцию print()
, чтобы хотя бы отобразить, в каком модуле и в какой строке он был вызван.
Знаете ли вы, возможно ли это в python3? (Я ветеран python2, но новичок в python3)
Любые другие предложения о том, как я могу решить эту проблему?
http://stackoverflow.com/a/10106489/2141635 –
@PadraicCunningham: он не работает. Кажется, что этот код был разработан для python2, в то время как я в настоящее время использую python3, как я писал в своем сообщении. – fstab
Вы уверены, что код вызывается 'print()', а не просто выполняет какой-то журнал? Вы можете просто вставить 'raise' во все блоки try/except. –