Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 어설션(Assertion)이란 무엇이며 어떻게 사용할까요?

어설션(Assertion)은 프로그램에 대한 테스트가 끝난 후 수행하는 일종의 온전성 검사(sanity test)입니다.

어설션은 raise-if 문(더 정확히는 raise-if-not 문)과 유사하게 동작합니다. 즉, 특정 표현식을 검사한 뒤 그 결과가 거짓(False)이면 예외를 발생시킵니다. Python에서는 assert 문을 사용해 어설션을 수행할 수 있습니다.

프로그래머들은 흔히 함수 시작 부분에 어설션을 배치해 입력값의 유효성을 확인하고, 함수 호출 이후에는 반환되는 출력값의 유효성을 점검하는 데 활용합니다.

assert 문 기본 예제

아래 코드는 assert 문을 사용하는 예시입니다. x와 y가 같기 때문에 조건 x < y가 거짓이 되어 AssertionError가 발생합니다.

x, y = 8, 8
assert x < y, 'x and y are equal'

실행 결과

Traceback (most recent call last):
File "C:/Users/TutorialsPoint1/PycharmProjects/TProg/Exception
handling/assertionerror1.py", line 9, in <module>
assert x<y, 'x and y are equal'
AssertionError: x and y are equal

assert 없이 동일하게 구현하기

assert 문을 사용하지 않고도 동일한 결과를 내는 코드를 작성할 수 있습니다. 아래 예제처럼 조건문과 raise 문을 조합하면 됩니다.

x, y = 8, 8
if not x < y:
    raise AssertionError('x and y are equal')

실행 결과

Traceback (most recent call last):
File "C:/Users/TutorialsPoint1/PycharmProjects/TProg/Exception handling/assertionerror1.py", line 7, in <module>
raise AssertionError('x and y are equal')
AssertionError: x and y are equal

두 방식 모두 조건이 만족되지 않으면 AssertionError를 발생시키며, 두 번째 인자로 전달된 메시지가 오류 정보에 함께 출력됩니다. 이처럼 어설션은 개발 단계에서 프로그램의 논리적 오류를 조기에 발견하는 데 유용한 도구입니다.