获得堆栈框架

max*_*max 6 python stack-trace python-3.x

如何让堆栈帧进入traceback.print_stack

Python 3.3a1文档:

traceback.print_stack(f=None, limit=None, file=None)

此函数从其调用点打印堆栈跟踪.可选f 参数可用于指定要启动的备用堆栈帧.可选的limit和file参数具有相同的含义 print_exception().

但是在文档中没有找到实际获得堆栈帧的方法.具体来说,假设我想打印从调用点上方一层开始的堆栈跟踪.我怎样才能做到这一点?

kin*_*all 5

inspect.stack()将为您提供当前堆栈的列表。您可以从中选择任何所需的框架。您也可以做例如inspect.currentframe().f_back获取呼叫者的框架。基本上,inspect模块就是它所在的位置。