Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 어설션

<시간/>

주장은 프로그램 테스트가 끝나면 켜거나 끌 수 있는 온전성 검사입니다.

주장을 생각하는 가장 쉬운 방법은 그것을 raise-if에 비유하는 것입니다. 문(또는 보다 정확하게는 raise-if-not 문). 표현식이 테스트되고 결과가 false이면 예외가 발생합니다.

어설션은 버전 1.5에 도입된 Python의 최신 키워드인 assert 문에 의해 수행됩니다.

프로그래머는 종종 유효한 입력을 확인하기 위해 함수 시작 부분에 단정문을 배치하고 유효한 출력을 확인하기 위해 함수 호출 후에 주장합니다.

어설션 문

assert 문을 만나면 Python은 함께 제공되는 표현식을 평가하며, 이는 사실일 것입니다. 표현식이 거짓이면 Python은 AssertionError 예외를 발생시킵니다.

구문 주장의 경우 -

assert Expression[, Arguments]

어설션이 실패하면 Python은 ArgumentExpression을 AssertionError에 대한 인수로 사용합니다. AssertionError 예외는 try-except 문을 사용하여 다른 예외처럼 catch하고 처리할 수 있지만 처리되지 않으면 프로그램을 종료하고 역추적을 생성합니다.

예시

다음은 온도를 켈빈도에서 화씨도로 변환하는 함수입니다. 0도 켈빈은 최대한 춥기 때문에 음의 온도가 보이면 함수가 빠져 나옵니다. −

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
assert (Temperature >= 0),"Colder than absolute zero!"
return ((Temperature-273)*1.8)+32
print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)

출력

위의 코드가 실행되면 다음과 같은 결과가 생성됩니다 -

32.0
451
Traceback (most recent call last):
File "test.py", line 9, in <module>
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!