Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从异常获取函数调用堆栈_Python 3.x - Fatal编程技术网

Python 3.x 从异常获取函数调用堆栈

Python 3.x 从异常获取函数调用堆栈,python-3.x,Python 3.x,当python函数失败时,我们会得到一个回溯,列出文件名、行和函数调用 除了块之外,在块中是否只提取这些函数名?我只想要一份导致失败的连续呼叫列表 我查看了traceback库,并对我的异常运行了dir(),但我什么也没看到。我最后查看了traceback文档并找到了答案 首先,使用traceback.extract_tb()获取StackSummary。这是FrameSummary对象的列表,这些对象本身就是元组,其第三个值是函数名。全文: try: some_function() exc

当python函数失败时,我们会得到一个回溯,列出文件名、行和函数调用

除了块之外,在
块中是否只提取这些函数名?我只想要一份导致失败的连续呼叫列表


我查看了
traceback
库,并对我的异常运行了
dir()
,但我什么也没看到。

我最后查看了
traceback
文档并找到了答案

首先,使用
traceback.extract_tb()
获取
StackSummary
。这是
FrameSummary
对象的列表,这些对象本身就是元组,其第三个值是函数名。全文:

try:
  some_function()
except Exception as e:
  tb = traceback.extract_tb(e.__traceback__)
  for frame in tb:
    print(frame[2])
输出将类似于

<module>
some_function
another_func_called_by_some_function
...

某些函数
另一个函数通过某个函数调用
...