分类目录:《系统学习Python》总目录
警告过滤器控制着警告是否被忽略、显示或转为错误(触发异常)。
从概念上讲,警告过滤器维护着一个经过排序的过滤器类别列表;任何具体的警告都会依次与列表中的每种过滤器进行匹配,直到找到一个匹配项;过滤器决定了匹配项的处理方式。每个列表项均为(action, message, category, module, lineno)
格式的元组,其中:
action
是以下字符串之一:
default
:为发出警告的每个位置(模块+行号)打印第一个匹配警告error
:将匹配警告转换为异常ignore
:从不打印匹配的警告always
:总是打印匹配的警告module
:为发出警告的每个模块打印第一次匹配警告(无论行号如何)once
:无论位置如何,仅打印第一次出现的匹配警告message
:包含正则表达式的字符串,警告信息的开头必须与之匹配。该表达式编译时不区分大小写。category
:警告类别的类(Warning
的子类),警告类别必须是其子类,才能匹配。module
:字符串,包含了模块名称必须匹配的正则表达式。该表达式编译时大小写敏感。lineno
:整数,发生警告的行号必须与之匹配,或为0表示与所有行号匹配。由于Warning
类是由内置类Exception
派生出来的,要把某个警告变成错误,只要触发category(message)``即可。如果警告不匹配所有已注册的过滤器,那就会应用
default`动作。