例如
def f(x):
line_number=how_get_5_if_call_from_f(2)
f(1)
f(2)
f(3)
即从第 4、5、6 行开始多次调用函数 f(计算函数本身的行号和空行)。必须在函数体中,即在第二行中,为变量 line_number 分配一个值,该值等于调用该函数的行号。即对于 f(1) line_number 应该等于 4 (计算函数本身的代码和一个空字符串)
例如
def f(x):
line_number=how_get_5_if_call_from_f(2)
f(1)
f(2)
f(3)
即从第 4、5、6 行开始多次调用函数 f(计算函数本身的行号和空行)。必须在函数体中,即在第二行中,为变量 line_number 分配一个值,该值等于调用该函数的行号。即对于 f(1) line_number 应该等于 4 (计算函数本身的代码和一个空字符串)
使用 function
traceback.extract_stack(),您可以获得有关调用堆栈的信息,包括从哪一行调用了当前函数:结论:
调用堆栈中的最后一个元素对应一个函数调用
traceback.extract_stack(),倒数第二个 ([-2]) 对应一个函数调用f(x)。我们从头开始数,因为 可以有多个调用,堆栈上的第一个元素将对应于最外层的调用(例如,如果首先调用函数,然后main从它调用函数f,那么堆栈的第一个元素将是函数调用main)您可以计算它被调用了多少次:
或者处理一个异常,告诉你错误在哪一行: