打印python堆栈跟踪而无异常

发布于 2021-01-29 17:55:21

我的类的实例变量之一正在发生某些事情。我想将变量设置为属性,并且每当访问该变量时,我都希望打印出导致该点的所有代码的堆栈跟踪,因此我可以看到它的混乱之处。没有异常发生时如何打印堆栈跟踪?我知道是否有例外,我可以做类似的事情traceback.format_tb(sys.exc_info()[2])

同样有用的是仅打印最后3-4个级别,因为前几个级别可能不会那么有趣。

关注者
0
被浏览
211
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    traceback.print_stack()

    >>> def f():
    ...   def g():
    ...     traceback.print_stack()
    ...   g()
    ...
    >>> f()
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 4, in f
      File "<stdin>", line 3, in g
    

    编辑:您还可以使用extract_stack,获取一个切片(例如stack[5:],排除前5个级别),并使用format_list获得可打印的stacktrace('\n'.join(traceback.format_list(...))



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看