当前位置: 首页 > 面试题库 >

从Python代码中的方法打印当前调用堆栈

郑俊美
2023-03-14
问题内容

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


问题答案:

这是通过traceback模块获取堆栈并进行打印的示例:

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()让您随心所欲地使用它。



 类似资料:
  • 问题内容: 我正在寻找一种在PHP中打印调用堆栈的方法。 如果函数刷新IO缓冲区,则奖励积分。 问题答案: 如果要生成回溯,则正在寻找 和/或 。 例如,第一个将为您提供一个像这样的数组 (引用手册) : 它们显然不会刷新I / O缓冲区,但是您可以使用 和/或自己进行操作 。 (请参阅第一个手册页,以了解为什么使用“和/或” ;-))

  • 本文向大家介绍Python打印“菱形”星号代码方法,包括了Python打印“菱形”星号代码方法的使用技巧和注意事项,需要的朋友参考一下 本人是一名python初学者,刚刚看到一道有趣的python问题,“用python如何在编译器中打印出菱形图案?” 因此决定尝试一下,代码不多,仅供参考。 代码 运行结果:

  • 本文向大家介绍用python打印菱形的实操方法和代码,包括了用python打印菱形的实操方法和代码的使用技巧和注意事项,需要的朋友参考一下 python怎么打印菱形?下面给大家带来三种方法: 第一种 输出结果: 第二种 输出结果: 第三种 输出结果: 以上就是关于用python来画出菱形的方法总结,感谢大家的阅读和对呐喊教程的支持。

  • #include<stdio.h> void a(void) { printf("Tail call frame\n"); } void b(void) { a(); } void c(void) { b(); } int main(void) { c(); return 0; } 技巧 当一个函数最后一条指令

  • 问题内容: 每当调用某个函数时,是否有任何方法可以在C或C ++的运行进程中转储调用堆栈?我想到的是这样的: Where的工作方式与Perl 类似。 或类似这样的东西: 在其中放置某种内部断点,该断点将在每次调用时打印堆栈跟踪。 标准的C库中是否存在类似的东西? 我正在使用GCC在Linux上工作。 背景 我有一个测试运行,该行为基于一些不应影响此行为的命令行开关而有所不同。我的代码有一个伪随机数

  • 问题内容: 我需要编写一个小的日志分析器应用程序来处理由我的项目中使用的第三方封闭源库(内部具有自定义记录器)生成的一些日志文件。 如果日志中有异常条目,我需要从堆栈顶部到异常的实际位置收集有关堆栈跟踪中所涉及方法的汇总信息。 不幸的是,默认情况下,Java printStackTrace()不会打印调用堆栈中的每个方法,但是最多可以打印一个特定的数目,其余的仅被引用为。 如果我自己可以捕获到该异

  • testdate.java:

  • 问题内容: 我的iOS应用程序中有.html文件。HTML文件具有少量带有onClick方法的div块。当我点击这些块时,我会在Web视图中调用一些javascript代码,但我还需要在源代码中了解这些事件。 例如,当我点击Web元素并调用onClick时,我需要在代码中调用某些方法,例如 我可以做这个东西吗?谢谢。 问题答案: 在JS中调用Objective-C的方法: 下面的网址有助于做到这一