python检查模块-python的问题

时间:2011-06-06 05:01:14

标签: python

如何编写程序来“识别函数调用的行号?”

python检查模块提供了查找行号的选项,但

def di():
  return inspect.currentframe().f_back.f_lineno 

此python代码打印当前行号。

2 个答案:

答案 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是调用者的调用者,等等。