반응형
안녕하세요. TDR입니다.
오늘은 python에서의 Assert의 사용법에 대해서 간략히 정리해보겠습니다.
Assert(어설트)
fruits = str(input('사과는 영어로? : ')) # banana 입력
## assert format
# assert <True False를 반환하는 조건문>, <출력할 메시지>
assert fruits == 'apple', '사과 영어로 뭔지 모르세요?'
## Result
# assert fruits == 'apple', '사과 영어로 뭔지 모르세요?'
# ^^^^^^^^^^^^^^^^^
# AssertionError: 사과 영어로 뭔지 모르세요?
위와 같이 assert의 조건문이 False를 반환하면 AssertionError를 발생시키며 메시지를 출력하게 됩니다. AssertionError도 Exception을 상속해서 구현된 class입니다. 그 말은 except로 잡을 수도 있다는 말입니다. (try-except는 아래 링크 참조)
fruits = str(input('사과는 영어로? : ')) # banana 입력
try:
assert fruits == 'apple', '사과 영어로 뭔지 모르세요?'
except AssertionError as msg:
print(msg) # 사과 영어로 뭔지 모르세요?
위 예시와 달리 Exception은 발생하지 않고 except에서 print로 assert의 메시지만 출력되는 것을 볼 수 있습니다.
참고로 assert는 Debug 모드에서만 동작합니다. 즉, Release 모드에서는 assert가 동작하지 않는 다는 말입니다. 그렇다면 이건 왜 쓰는 걸까요? 그건 여러 사람과 같이 개발을 할 때 코드의 안정성을 도모하고 코드를 작성한 사람의 의견을 전달하고, 개발 단계에서 문제를 파악하기 쉽게 하는 등 여러가지 목적을 가지고 쓰이게 됩니다.
마지막으로, python test.py와 같이 실행 시키면 기본이 Debug 모드로 동작하게 됩니다. 디버그 모드가 아닌 모드로 실행을 시키고 싶으면 다음과 같이 실행을 하면 됩니다.
python -O(대문자 o) test.py
반응형
'Computer & Program > python' 카테고리의 다른 글
[python] Decorator(데코레이터) - 02 (0) | 2024.03.01 |
---|---|
[python] Decorator(데코레이터) - 01 (0) | 2024.02.29 |
[python] try-except (예외처리) (0) | 2024.02.27 |
[python] class(클래스) - 03 (0) | 2024.02.26 |
[python] class(클래스) - 02 (1) | 2024.02.25 |
댓글