python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python Warning警告

详解python Warning警告有哪些情况

作者:村长

这篇文章主要为大家介绍分析了python Warning警告有哪些情况示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

摘要:

在很多代码中我们经常能看到一些代码能得到我们想要的结果,但是还会出现一些警告提示,这种情况一般出现情况会有好几种,下面就来细数一下所有类型警告和处理类。

在很多代码中我们经常能看到一些代码能得到我们想要的结果,但是还会出现一些警告提示,这种情况一般出现情况会有好几种,下面就来细数一下所有类型警告和处理类。

一、警告类

首先是基类Warning,是警告基类。我们在IDE中一般只会看到他的子类:

DeprecationWarning  # 有关已弃用功能的警告的基类
PendingDeprecationWarning  # 有关不推荐使用功能的警告的基类
RuntimeWarning  # 有关可疑的运行时行为的警告的基类
SyntaxWarning  # 关于可疑语法警告的基类
UserWarning  # 用户代码生成警告的基类
FutureWarning  # 有关已弃用功能的警告的基类
ImportWarning  # 关于模块导入时可能出错的警告的基类
UnicodeWarning  # 与Unicode相关的警告的基类
BytesWarning  # 与bytes和bytearray相关的警告的基类
ResourceWarning  # 与资源使用相关的警告的基类。被默认警告过滤器忽略。

二、实例代码处理方法

捕获警告,在退出上下文时恢复警告过滤器和 showwarning() 函数功能。如果 record 参数是 False (缺省值),则上下文管理器在入口处返回 None。

如果 record 是 True,则返回一个列表,该列表元素为 showwarning() 函数所见的对象,列表中的每个元素都具有与 showwarning() 的参数具有相同名称的属性。

import warnings
warnings.simplefilter("always")
def fxn():
    warnings.warn("this is a warning", Warning)
with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    fxn()
with warnings.catch_warnings(Warning):
    warnings.warn("this is a warning2", Warning)
warnings.warn("this is a warning3", Warning)
def fxn2():
    warnings.warn("deprecated", DeprecationWarning)
with warnings.catch_warnings(record=True) as w:
    # Cause all warnings to always be triggered.
    warnings.simplefilter("always")
    # Trigger a warning.
    fxn2()
    # Verify some things
    assert len(w) == 1
    assert issubclass(w[-1].category, DeprecationWarning)
    assert "deprecated" in str(w[-1].message)

以上就是详解python Warning警告有哪些情况的详细内容,更多关于python Warning警告的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文