我们如何防止警告在其消息末尾打印奇怪的文本? [复制]

Posted

技术标签:

【中文标题】我们如何防止警告在其消息末尾打印奇怪的文本? [复制]【英文标题】:How do we prevent warning from printing strange text at the end of its message? [duplicate] 【发布时间】:2018-08-07 11:21:53 【问题描述】:

以下导致打印一些额外的奇怪输出

import warnings

def foo(x):

    if x > 100:
        msg = "Warning! x is big!"
        warnings.warn(msg)
    return True

foo(999999)

不仅仅是打印:

UserWarning: Warning! x is big!

我们得到:

UserWarning: Warning! x is big!
   warnings.warn(msg)

有时我什至得到:

UserWarning: Warning! x is big!
   ValueError [blah, blah, blah]

【问题讨论】:

【参考方案1】:

这是一种方法:

import warnings
import sys

if not sys.warnoptions:
    warnings.simplefilter("ignore")

def foo(x):

    if x > 100:
        msg = "Warning! x is big!"
        warnings.warn(msg)
    return True

foo(999999)

免责声明

Python documentation 建议不要更改此设置:

sys.warnoptions

这是警告的实现细节 框架;不要修改此值。请参阅警告模块 有关警告框架的更多信息。

【讨论】:

以上是关于我们如何防止警告在其消息末尾打印奇怪的文本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

停止 TensorFlow 打印警告消息

如何在 Python 函数中创建简单的 PyQt 弹出窗口并在其末尾关闭?

如何从 ExtJS 商店打印(或警告)值?

如何防止subprocess.call打印返回代码?

防止 Tab Bar 截断 WKWebView 文本

我的调试窗口中出现奇怪的警告