系统学习Python——警告信息的控制模块warnings:警告过滤器-[警告过滤器的执行过程]

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


警告过滤器由传给Python解释器的命令行-W选项和PYTHONWARNINGS环境变量初始化。解释器在sys.warningoptions中保存了所有给出的参数,但不作解释;warnings模块在第一次导入时会解析这些参数(无效的选项被忽略,并会先向sys.stderr打印一条信息)。

每个警告过滤器的设定格式为冒号分隔的字段序列:

action:message:category:module:line

这些字段的含义在文章《系统学习Python——警告信息的控制模块warnings:警告过滤器-[基础知识]》有过说明。当一行中列出多个过滤器时(如PYTHONWARNINGS),过滤器间用逗号隔开,后面的优先于前面的(因为是从左到右应用的,最近应用的过滤器优先于前面的)。

常用的警告过滤器适用于所有的警告、特定类别的警告、由特定模块和包引发的警告。下面是一些例子:

default                      # Show all warnings (even those ignored by default)
ignore                       # Ignore all warnings
error                        # Convert all warnings to errors
error::ResourceWarning       # Treat ResourceWarning messages as errors
default::DeprecationWarning  # Show DeprecationWarning messages
ignore,default:::mymodule    # Only report warnings triggered by "mymodule"
error:::mymodule[.*]         # Convert warnings to errors in "mymodule"
                             # and any subpackages of "mymodule"

猜你喜欢

转载自blog.csdn.net/hy592070616/article/details/135465603