系统学习Python——警告信息的控制模块warnings:警告过滤器-[基础知识]

分类目录:《系统学习Python》总目录


警告过滤器控制着警告是否被忽略、显示或转为错误(触发异常)。

从概念上讲,警告过滤器维护着一个经过排序的过滤器类别列表;任何具体的警告都会依次与列表中的每种过滤器进行匹配,直到找到一个匹配项;过滤器决定了匹配项的处理方式。每个列表项均为(action, message, category, module, lineno)格式的元组,其中:

  • action是以下字符串之一:
    • default:为发出警告的每个位置(模块+行号)打印第一个匹配警告
    • error:将匹配警告转换为异常
    • ignore:从不打印匹配的警告
    • always:总是打印匹配的警告
    • module:为发出警告的每个模块打印第一次匹配警告(无论行号如何)
    • once:无论位置如何,仅打印第一次出现的匹配警告
  • message:包含正则表达式的字符串,警告信息的开头必须与之匹配。该表达式编译时不区分大小写。
  • category:警告类别的类(Warning的子类),警告类别必须是其子类,才能匹配。
  • module:字符串,包含了模块名称必须匹配的正则表达式。该表达式编译时大小写敏感。
  • lineno:整数,发生警告的行号必须与之匹配,或为0表示与所有行号匹配。

由于Warning类是由内置类Exception派生出来的,要把某个警告变成错误,只要触发category(message)``即可。如果警告不匹配所有已注册的过滤器,那就会应用default`动作。

猜你喜欢

转载自blog.csdn.net/hy592070616/article/details/135465467
今日推荐