Отладка Python: получить имя файла и номер строки, из которой вызывается функция?

В настоящее время я создаю довольно сложную систему на Python, и когда я отлаживаю, я часто помещаю простые операторы печати в несколько скриптов. Чтобы сохранить обзор, я также часто хочу распечатать имя файла и номер строки, где находится оператор печати. Конечно, я могу сделать это вручную или с помощью чего-то вроде этого:

from inspect import currentframe, getframeinfo
print getframeinfo(currentframe()).filename + ':' + str(getframeinfo(currentframe()).lineno) + ' - ', 'what I actually want to print out here'

который печатает что-то вроде:

filenameX.py:273 - что я на самом деле хочу распечатать здесь

Чтобы сделать это более простым, я хочу иметь возможность сделать что-то вроде:

print debuginfo(), 'what I actually want to print out here'

Итак, я поместил это в функцию где-то и попытался сделать:

from debugutil import debuginfo
print debuginfo(), 'what I actually want to print out here'
print debuginfo(), 'and something else here'

к сожалению, я получаю:

debugutil.py:3 - what I actually want to print out here
debugutil.py:3 - and something else here

Он выводит имя файла и номер строки, в которой я определил функцию, вместо строки, в которой я вызываю debuginfo (). Это очевидно, потому что код находится в файле debugutil.py.

Итак, мой вопрос на самом деле:Как я могу получить имя файла и номер строки, из которой вызывается эта функция debuginfo ()? Все советы приветствуются!

Ответы на вопрос(3)

Ваш ответ на вопрос