当程序出现诡异的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