gpt4 book ai didi

python - 让 Python 的 `warnings.warn()` 不提及自己

转载 作者:太空狗 更新时间:2023-10-30 00:35:56 28 4
gpt4 key购买 nike

我的最小例子是

#!/usr/bin/python3

import warnings

warnings.warn('Run Forest run!', stacklevel=2)
warnings.warn('Run Forest run!')

它会输出

sys:1: UserWarning: Run Forest run!
./file.py:6: UserWarning: Run Forest run!
warnings.warn('Run Forest run!')

第一行给我的信息很少。第二行是完美的,给了我源文件和行号......但我想去掉多余的第三行。这可能吗?

最佳答案

事实证明,可以让 warnings.warn() 收集所有信息,并仅对信息的打印方式进行定制:

#!/usr/bin/python3

import warnings

def warning_on_one_line(message, category, filename, lineno, file=None, line=None):
return '%s:%s: %s: %s\n' % (filename, lineno, category.__name__, message)

warnings.formatwarning = warning_on_one_line

warnings.warn('Run Forest run!', stacklevel=2)
warnings.warn('Run Forest run!')

输出:

sys:1: UserWarning: Run Forest run!
./file.py:15: UserWarning: Run Forest run!

来源: Python module of the week

关于python - 让 Python 的 `warnings.warn()` 不提及自己,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26430861/

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