en en ko ko ko ja en en zh en pt ko en ko ko ko en ko en ko nl ko nl en ko nl ko ko en ko en ko en ko ko nl ko ko ko ko ko zh en en en en pt fr en en kn en sv fr en en en en en es fr en en en fr ja en en en en en en en en en fi en hu pt hbs_lat ru en en en en pl ko ko ko ko ko ko ko zh en en pt en en en uz en en fr eo sv en en en es en en en en en en ja en it hu ja eo en de en ko ko en en
프로그램을 중단하지 않고 파이썬에서 경고 발생 return i 아래
다음 간단한 함수를 사용하여 사용자가 0이 아닌 숫자를 전달했는지 확인합니다. 그렇다면, 프로그램은 경고를하지만 정상적인대로 계속 진행해야합니다. 그것은 아래의 코드처럼 작동해야하지만 클래스를 사용한다 Warning(), Error()또는 Exception()대신 수동으로 경고를 인쇄.
def is_zero(i): if i != 0: print "OK" else: print "WARNING: the input is 0!" return i
아래 코드를 사용하고 함수에 0을 전달하면 프로그램이 중단되고 값이 반환되지 않습니다. 대신, 프로그램이 정상적으로 계속 진행되기를 원하며 사용자에게 함수에 0을 전달했다고 알려주십시오.
def is_zero(i): if i != 0: print "OK" else: raise Warning("the input is 0!") return i
unittest에서 경고를 테스트했는지 테스트하고 싶습니다. 단순히 메시지를 인쇄하면 unittest에서 assertRaises로 테스트 할 수 없습니다.
당신은 안된다 raise, 당신은 경고 사용해야 warnings모듈을. 그것을 높이면 경고가 아닌 오류가 발생합니다.
파이썬 문서를 참조하십시오 : here
기본적으로 예외와 달리 경고는 중단되지 않습니다.
이후 import warnings에는 경고 를 생성 할 때 경고 클래스 를 지정할 수 있습니다 . 하나를 지정하지 않으면 문자 그대로 UserWarning기본적으로 사용됩니다.
>>> warnings.warn('This is a default warning.')  :1: UserWarning: This is a default warning.
단순히 대신 기존 클래스를 사용하려면, 예를 들면 DeprecationWarning:
>>> warnings.warn('This is a particular warning.', DeprecationWarning)  :1: DeprecationWarning: This is a particular warning.
사용자 정의 경고 클래스 작성은 사용자 정의 예외 클래스 작성과 유사합니다.
>>> class MyCustomWarning(UserWarning): ... pass ... ... warnings.warn('This is my custom warning.', MyCustomWarning)  :1: MyCustomWarning: This is my custom warning.
테스트하려면 assertWarns또는을 고려하십시오 assertWarnsRegex.
대안으로, 특히 독립형 애플리케이션의 경우 logging모듈을 고려하십시오 . debug , info , warning , error 등 의 레벨을 가진 메시지를 로그 할 수 있습니다 . 경고 레벨 이상의 로그 메시지 는 기본적으로 stderr에 인쇄됩니다.
이 글은 Python 카테고리에 분류되었고 error-handling, exception, python, warnings 태그가 있으며 소장 마님에 의해 2022-02-14에 작성되었습니다.
Linux-특정 날짜 이후에 수정 된 모든 파일을 새 하드 드라이브로 전송 나에게 실패하기 시작했고 새로운 드라이브를 고스트 할
비싼 소프트웨어없이 Flash 게임을 개발하려면 어떻게해야합니까? [닫은] 사용하고있었습니다. FlashDevelop에 대해 알고 있지만
OGR / GDAL을 사용하여 래스터 배치를 리샘플링하는 방법은 무엇입니까? 찾고 있습니다. TIF 파일로 가득
손상된 OS X HFS + 파티션에서 데이터 복구에 대한 최고의 리소스 하드 디스크로 부팅되지 않습니다. CD로 부팅하면 드라이브가
Proudly powered by WordPress