Python警告控件

时间:2009-09-11 18:31:46

标签: python warnings

我希望某种警告可以作为错误而升级,但只是第一次出现。怎么做?

我读过http://docs.python.org/library/warnings.html,我不知道如何将这两种行为结合起来。

1 个答案:

答案 0 :(得分:7)

查看warnings.py的代码,您不能为警告分配多个过滤器操作,也不能(轻松)定义自己的操作,例如'raise_once'。

但是,如果您想将警告作为异常引发,但只是一次,这意味着您正在捕获异常。为什么不在except子句中添加一行来设置对该特定警告的“忽略”操作?

#!/usr/bin/python

import warnings

warnings.filterwarnings('error','Test')
for i in range(2):
  try:
    warnings.warn('Test');
  except UserWarning, e:
    print "Error caught"
    warnings.filterwarnings('ignore','Test')