分类目录:《系统学习Python》总目录
通常以下情况会引发警告:提醒用户注意程序中的某些情况,而这些情况通常还不值得触发异常并终止程序。例如,当程序用到了某个过时的模块时,就可能需要发出一条警告。
Python程序员可调用warnings
模块中定义的warn()
函数来发布警告。警告信息通常会写入sys.stderr
,但可以灵活改变,从忽略所有警告到变成异常都可以。警告的处理方式可以依据警告类型 、警告信息的文本和发出警告的源位置而进行变化。同一源位置重复出现的警告通常会被抑制。
控制警告信息有两个阶段:首先,每次引发警告时,决定信息是否要发出;然后,如果要发出信息,就用可由用户设置的钩子进行格式化并打印输出。
警告过滤器控制着是否发出警告信息,也即一系列的匹配规则和动作。调用filterwarnings()
可将规则加入过滤器,调用resetwarnings()
则可重置为默认状态。
警告信息的打印输出是通过调用showwarning()
完成的,该函数可被重写;默认的实现代码是调用formatwarning()
进行格式化,自己编写的代码也可以调用此格式化函数。