2009-09-11 4 views

답변

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

몇 가지 비슷한 경고가 표시되면 경고를 음소거하는 방법이 있습니까? 같은 경고의 정확한 숫자가 나온 후에 말이야. – L1ker

+0

L1ker, http://docs.python.org/2/library/warnings.html#the-warnings-filter를 참조하십시오. 예 : 경고가 발생하기 전에'warnings.filterwarnings ("once once")를 호출하십시오. 그러나 같은 경고를 한 번 이상 표시 할 수는 없지만 요청한 횟수만큼 고정 된 횟수만큼 표시 할 수는 없습니다. – j08lue