Показывает номера строк функций в стеке вызовов.
Например,
import sys
def f1():
f2() # First call in the stack
def f2():
f3() # Second call in the stack
def f3():
for num in range(3):
frame = sys._getframe(num)
show_frame(num, frame) # Third call in the stack
def show_frame(num, frame):
print(frame)
print(" frame = sys._getframe(%s)" % num)
print(" function = %s()" % frame.f_code.co_name) # Shows the function/module name
print(" file/line = %s:%s" % (frame.f_code.co_filename, frame.f_lineno)) # Shows the stack line number it was called in
f1()
Вывод приведенного выше списка выглядит следующим образом:
<frame at 0x101172dc0, file 'temp.py', line 12, code f3>
frame = sys._getframe(0)
function = f3()
file/line = temp.py:12
<frame at 0x101184200, file 'temp.py', line 7, code f2>
frame = sys._getframe(1)
function = f2()
file/line = temp.py:7
<frame at 0x1011f29f0, file 'temp.py', line 4, code f1>
frame = sys._getframe(2)
function = f1()
file/line = temp.py:4
Просто проверьте корреляцию с номерами строк и вызовами функций.