В некоторых случаях я хочу выводить вывод в стиле отладки примерно так:
# module test.py
def f()
a = 5
b = 8
debug(a, b) # line 18
Я хочу, чтобы функция debug
выводила следующее:
debug info at test.py: 18
function f
a = 5
b = 8
Я думаю, что это должно быть возможно с помощью модуля проверки, чтобы найти кадр стека, затем найти соответствующую строку, искать исходный код в этой строке, получая оттуда имена аргументов. Имя функции можно получить, переместив один кадр стека вверх. (Значения аргументов легко получить: они передаются непосредственно в функцию debug
.)
Я на правильном пути? Есть ли какой-нибудь рецепт, на который я могу сослаться?