在Python中,如何从方法中打印当前调用堆栈(用于调试目的)。


当前回答

import traceback
traceback.print_stack()

其他回答

安装检查

pip3 install inspect-it --user

Code

import inspect;print(*['{:40}| {}:{}\n'.format(x.function, x.filename, x.lineno) for x in inspect.stack()])

你可以对这一行做一个代码片段

它将向您显示带有文件名和行号的函数调用堆栈列表

列出从开始到放这一行的位置

对于那些在使用pdb时需要打印调用堆栈的人,就这样做吧

(Pdb) where

Inspect.stack()返回当前堆栈,而不是异常回溯:

import inspect
print inspect.stack()

有关log_stack实用函数,请参阅https://gist.github.com/FredLoney/5454553。

如果您使用python调试器,不仅可以交互式探测变量,还可以使用“where”命令或“w”获取调用堆栈。

在程序的顶部

import pdb

然后在代码中查看发生了什么

pdb.set_trace()

然后你就进入了提示符

import traceback
traceback.print_stack()