inspect.stack
时间: 2023-07-20 18:35:01 浏览: 180
TestStack.java
`inspect.stack()` 是 inspect 模块中的一个函数,用于返回当前调用栈的帧信息,以列表形式返回。每个列表元素都是一个元组,包括以下信息:
- 帧对象(frame object):表示当前函数调用的栈帧。
- 文件名(file name):当前函数所在的文件名。
- 行号(line number):当前函数所在的行号。
- 函数名(function name):当前函数的名称。
- 代码行(context line):当前函数所在的代码行。
示例代码如下:
```python
import inspect
def foo():
bar()
def bar():
for frame_info in inspect.stack():
print(frame_info.filename, frame_info.lineno, frame_info.function)
foo()
```
输出结果为:
```
/path/to/file.py 5 foo
/path/to/file.py 8 bar
```
上述代码中,foo 函数调用了 bar 函数,`inspect.stack()` 返回了两个元素,一个是 bar 函数的帧信息,一个是 foo 函数的帧信息。通过遍历这个列表,我们可以获取整个调用栈上的帧信息。在调试、错误追踪等场景中,`inspect.stack()` 非常有用。
阅读全文