如何将堆栈帧传递到traceback.print_stack
?
traceback.print_stack(f=None, limit=None, file=None)
此功能 从其调用点打印堆栈跟踪。可选
f
参数可用于指定要启动的备用堆栈框架。该 可选的limit和file参数具有相同的含义print_exception()
。
但是在文档中没有找到实际获得堆栈帧的方法。具体来说,我想说我想在调用点上方一层开始打印堆栈跟踪。我怎么能这样做?
答案 0 :(得分:4)
inspect.stack()
会将当前堆栈作为列表。您可以选择任何想要的帧。你也可以做,例如inspect.currentframe().f_back
获取来电者的相框。基本上,inspect
模块就在它的位置。
答案 1 :(得分:2)
This文档提供了有关可用于获取堆栈帧的函数的信息,例如inspect.currentframe()
。
答案 2 :(得分:1)
除了检查模块,您可以尝试:
import sys
sys._getframe(1)
或
import sys
sys._getframe().f_back
警告它是私有函数,某些版本的python可能无法实现它。