assert라는 개념은 가정 설정문을 뜻하는 assertion에서 나오게 되었습니다. 프로그램 개발의 과정에서 '실수는 일어난다'고 가정하고, 참/거짓을 미리 가정하는 문을 배치하여 이를 방지하는 것입니다. 이것을 방어적 프로그래밍(defensive programming)이라고 부르며, 방어적 프로그래밍의 가장 일반적인 구현 방식은 여기서 말한 assert를 사용합니다.

assert

assert(가정 설정문)은 단순하게 프로그램의 특정 지점에서 항상 참이어야 하는 문장입니다. Python을 비롯해 assertion을 지원하는 프로그래밍 언어들은 대부분 assert의 조건을 확인하여 참이면 다음 문장으로 넘어가고, 거짓이면 프로그램을 정지시킵니다. Python에서는 assert의 조건이 거짓인 경우 AssertionError를 발생시킵니다. assert의 예는 다음과 같습니다.

assert [condition] 형태입니다. 조금 현실적으로 바꾼다면, 아래처럼 작성할 수 있습니다.

assert에 메시지를 작성할 수도 있습니다. assert [condition], [message] 형태입니다.

이는 raise AssertionError('Data should only contain positive values')와 같은 결과를 내보냅니다.

'Python 계열 > Python 레거시 글' 카테고리의 다른 글

[Python] Coroutines  (0) 2018.07.27
[Python] memoize  (0) 2018.07.26
[Python] Generator  (0) 2018.07.23
[Python] Iterable, Sequence, Iterator  (0) 2018.07.22
[Python] Decorator  (0) 2018.07.21

+ Recent posts