如何编写程序来“识别函数调用的行号?”
python检查模块提供了查找行号的选项,但
def di():
return inspect.currentframe().f_back.f_lineno
此python代码打印当前行号。
答案 0 :(得分:3)
为什么不使用inspect.stack()
?
def get_caller_lineno():
frame, _, lineno, _, _, _ = inspect.stack()[1]
return lineno
答案 1 :(得分:0)
我发布了一个用于检查的包装器,其中简单的堆栈帧寻址通过单个参数spos
覆盖堆栈帧:
E.g。
pysourceinfo.PySourceInfo.getCallerLinenumber(spos=1)
其中spos=0
是lib函数,spos=1
是调用者,spos=2
是调用者的调用者,等等。