获取堆栈帧
问题描述:
如何获取堆栈帧传入traceback.print_stack
?获取堆栈帧
traceback.print_stack(f=None, limit=None, file=None)
此功能 版画从它的调用点的堆栈跟踪。可以使用可选的
f
参数来指定替代堆栈帧以启动。 可选限制和文件参数的含义与print_exception()
相同。
但是在文档中没有找到实际获得堆栈帧的方法。具体来说,假设我想打印从调用点上一级开始的堆栈跟踪。我怎样才能做到这一点?
答
inspect.stack()
会将您当前的堆栈作为列表。你可以选择任何你想要的框架。你也可以做例如inspect.currentframe().f_back
以获取您的来电者的框架。基本上,inspect
模块就是它所处的位置。
答
除了检查模块,你可以尝试:
import sys
sys._getframe(1)
或
import sys
sys._getframe().f_back
被警告这是一个私人的功能,蟒蛇的某些版本可能无法实现它。