• python模块学习之warnings


    warnings.warn(message, category=None, stacklevel=1, source=None)

    发出警告,或者忽略它或引发异常。
    category参数(如果给定)必须是警告类别类(见上文);它默认为UserWarning。
    或者,消息可以是一个警告实例,在这种情况下,类别将被忽略,并且将使用消息.__ class__。
    在这种情况下,消息文本将是str(消息)。
    如果发出的特定警告通过上面的警告过滤器更改为错误,则此函数将引发异常。
    stacklevel参数可以由Python编写的包装函数使用,如下所示:

    def deprecation(message):
        warnings.warn(message, DeprecationWarning, stacklevel=2)

    这使得警告引用deprecation()的调用者,而不是deprecation()本身的来源(因为后者会打破警告消息的目的)。

        源(如果提供)是发出ResourceWarning的被破坏的对象。

        版本3.6更改:添加源参数。

    目前定义了以下警告类别类:

    类 | 说明
    ================    
    Warning | 这是所有警告类的基类。它是异常的子类。
    UserWarning | warn()的默认类别。
    DeprecationWarning | 关于不推荐使用的功能的警告的基类别(默认情况下忽略)。
    SyntaxWarning | 关于可疑语法特征的警告的基类。
    RuntimeWarning | 关于可疑运行时功能的警告的基类别。
    FutureWarning | Base类别,用于关于将来会在语义上发生变化的构造的警告。
    PendingDeprecationWarning | 关于将来不推荐使用的功能的警告的基本类别(默认情况下忽略)。
    ImportWarning | 导入模块过程中触发的警告的基本类别(默认情况下忽略)。
    UnicodeWarning  | 与Unicode相关的警告的基类别。
    BytesWarning | 与字节和bytearray相关的警告的基类别。
    ResourceWarning | 与资源使用相关的警告的基类别。
    虽然这些技术上是内置的异常,但它们在这里被记录在案,因为在概念上它们属于警告机制。

    例子

    # -*- coding: utf-8 -*-
    # warnings模块说明
    import warnings
    
    a,b= 1,23
    class Twarnings(Warning):
    	pass
    try:
    	assert a == 2
    except Exception as e:
    	warnings.warn('wrong!',Twarnings)
    

     结果

    C:UsershuangrongDesktop	est.py:11: Twarnings: wrong!
      warnings.warn('wrong!',Twarnings)
    [Finished in 0.1s]
    warnings.filterwarnings(action,message =“,category = Warning,module =”,lineno = 0,append = False)

        将条目插入到过滤规范的警告列表中。
        该条目默认插入前面;如果append为true,则将其插入到最后。
        这将检查参数的类型,编译消息和模块正则表达式,并将其作为元组插入到警告过滤器列表中。
        如果两者匹配特定的警告,则更接近列表前面的条目会覆盖列表后面的条目。
        省略的参数默认为匹配所有内容的值。

    warnings.simplefilter(action, category = Warning,lineno = 0,append = False)

        将一个简单的条目插入到过滤规范的警告列表中。
        函数参数的含义与filterwarnings()一样,但不需要正则表达式,因为插入的过滤器总是匹配任何模块中的任何消息,
        只要类别和行号匹配即可。

    参数说明

        action是以下字符串之一:
        值 | 处置
        “error” | 将匹配警告转换为异常
        “ignore” | 不会打印匹配的警告
        “always” | 总是打印匹配的警告
        “default” | 打印发出警告的每个位置的首次出现的匹配警告
        “module” | 将为发出警告的每个模块打印首次发生的匹配警告
        “once” | 仅打印第一次匹配的警告,不管位置如何
    
        message是一个包含正则表达式的字符串,警告消息的开始必须匹配。表达式被编译为始终不区分大小写。
    
        category是一个类(Warning的一个子类),其中警告类别必须是一个子类才能匹配。
    
        module是一个包含模块名称必须匹配的正则表达式的字符串。表达式被编译为区分大小写。
    
        lineno是发生警告的行号必须匹配的整数,或0以匹配所有行号。
  • 相关阅读:
    mysql数据库(12)--进阶二之索引
    mysql数据库(11)--进阶一之join
    mysql数据库(10)--变量、存储过程和函数
    mysql数据库(9)--视图
    mysql数据库(10)--limit与offset的用法
    前端常用在线引用地址
    SQL中ON和WHERE的区别
    jstl和e1
    解决中文乱码问题
    JSP
  • 原文地址:https://www.cnblogs.com/leomei91/p/7660928.html
Copyright © 2020-2023  润新知