gpt4 book ai didi

python - 如何创建回溯对象

转载 作者:太空狗 更新时间:2023-10-29 17:57:53 24 4
gpt4 key购买 nike

我想创建一个类似 sys.exc_info()[2] 返回的回溯。我不想要行列表,我想要一个实际的回溯对象:

<traceback object at 0x7f6575c37e48>

我该怎么做?我的目标是让它包含当前堆栈减去一帧,因此看起来调用者是最近的调用。

最佳答案

没有记录的方法来创建回溯对象。

traceback 中没有函数模块创建它们。您当然可以访问类型为 types.TracebackType ,但是如果您调用它的构造函数,您只会得到一个 TypeError: cannot create 'traceback' instances

原因是回溯包含对内部结构的引用,您实际上无法在 Python 中访问或生成这些内部结构。


但是,您可以访问堆栈帧,模拟回溯所需的其他一切都是微不足道的。您甚至可以编写一个具有 tb_frametb_lastitb_linenotb_next 属性的类(使用您提供的信息可以从 traceback.extract_stack 和一个 inspect 函数中获取),这看起来就像是对任何纯 Python 代码的回溯。

So there's a good chance that whatever you really want to do is doable, even though what you're asking for is not.

关于python - 如何创建回溯对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com