sys.tracebacklimit 影响程序中的所有模块,而不仅仅是一个模块是否正常?

Is it normal for sys.tracebacklimit to impact all modules in a program, not just one?

提问人:Kashish Shah 提问时间:10/27/2023 最后编辑:Charles DuffyKashish Shah 更新时间:10/27/2023 访问量:28

问:

为了提高客户可见性,我在初始化期间进行了合并,以减少面向客户的回溯堆栈跟踪。sys.tracebacklimit = 0

现在由于此更改,它已停止为使用我的 python 客户端的所有包打印错误回溯。

这是预期的行为吗?

为了缓解这种情况,我们删除了这些行,但我仍然非常不清楚仅应该在我的包中运行的回溯更改如何影响所有包?

python-3.x python模块

评论

2赞 sudden_appearance 10/27/2023
只应该在“我的包”更新模块值中运行,而不是在包中运行。sys
2赞 Barmar 10/27/2023
是的,这是意料之中的。这是整个程序的全局设置。
1赞 Charles Duffy 10/27/2023
每个模块只有一个副本。当您导入程序的任何其他部分时,您会从缓存中获得对全局副本的引用。因此,只有一个 的副本,而 只有一个值。importsyssys.tracebacklimit
0赞 Kashish Shah 10/27/2023
现在这是有道理的。这是记录在 python 文档中的某个地方还是只是常识?

答: 暂无答案