从Python代码中的方法打印当前调用堆栈
在Python中,如何从方法内打印当前调用堆栈(用于调试目的)。
以下是通过追溯模块获取堆栈并打印它的示例:
import traceback
def f():
g()
def g():
for line in traceback.format_stack():
print(line.strip())
f()
# Prints:
# File "so-stack.py", line 10, in <module>
# f()
# File "so-stack.py", line 4, in f
# g()
# File "so-stack.py", line 7, in g
# for line in traceback.format_stack():
如果你真的只想打印堆栈到stderr,你可以使用:
traceback.print_stack()
或者打印到标准输出(如果想要保持重定向输出一起使用),请使用:
traceback.print_stack(file=sys.stdout)
但通过traceback.format_stack()
获取它可以让你traceback.format_stack()
做任何事情。
import traceback
traceback.print_stack()
inspect.stack()
返回当前堆栈而不是异常追溯:
import inspect
print inspect.stack()
有关log_stack实用程序功能,请参阅https://gist.github.com/FredLoney/5454553。
链接地址: http://www.djcxy.com/p/82427.html上一篇: Print current call stack from a method in Python code
下一篇: Equivalent to late static binding(PHP) in other popular languages