Печать имен переменных, переданных функции

В некоторых случаях я хочу выводить вывод в стиле отладки примерно так:

# 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.)

Я на правильном пути? Есть ли какой-нибудь рецепт, на который я могу сослаться?

5
задан max 30 March 2012 в 06:36
поделиться