当程序出现诡异的bug时,我们需要层层去跟踪,尤其是要理清顺序。
这时如果有个清晰的调用脉络调试就容易多了。
利用inspect模块的getframeinfo方法来实现这需求。
上代码感受下。
import inspect def foo(): who = inspect.getframeinfo(inspect.currentframe().f_back)[2] print '{} call me'.format(who) def a(): foo() def b(): foo() a() b() a()
结果输出:
a call me
b call me
a call me