2009-09-11 47 views

回答

7

查看warnings.py的代碼,不能將多個過濾器操作分配給警告,也不能(很容易)定義自己的操作,如'raise_once'。

但是,如果您想將警告提示爲例外,但只是一次,這意味着您正在捕捉異常。爲什麼不在你的除外條款中設置一條對該特定警告設置「忽略」操作的行?

#!/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') 
+0

有沒有辦法使警告靜音後,幾個類似的警告?我的意思是確切數量的警告。 – L1ker 2009-09-13 15:12:59

+0

L1ker,請參閱http://docs.python.org/2/library/warnings.html#the-warnings-filter。你可以例如在警告提出之前在某處調用'warnings.filterwarnings(「一次」)。但是,按照您的要求,無法多次顯示相同的警告,但需要固定次數。 – j08lue 2014-02-26 08:31:36