在 c 代码中,我经常使用 printf 调试宏,例如
#define DPRINT_INT(i) fprintf(stderr,"%s has the value %i at line %i", #i,i, __LINE__)
然后我可以执行诸如 DPRINT_INT(height) 之类的操作,它将打印变量或诸如 DPRINT_INT(from_cm_to_inch(get_average(heights))) 之类的操作,它将打印出名称的整个表达式。
为 python 执行此操作,因为 python 没有类似 c 的宏
我传递一个字符串并使用检查来获取调用函数环境以调用 eval。但我不喜欢传递字符串,它丑陋且容易忘记(我让它检查类型并在传递非字符串时调用异常)并且在 ide 中效果不佳。
没有任何方法可以从调试函数的 python 代码中提取变量名和表达式?有没有?