본문 바로가기
Computer & Program/python

[python] Assert(어설트)

by TDRemon 2024. 2. 28.
반응형

안녕하세요. 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는 아래 링크 참조)

 

[python] try-except (예외처리)

안녕하세요. TDR입니다. 오늘은 python에서의 예외처리(try-except)에 대해서 간략히 정리해보겠습니다. class Custom01Exception(Exception): def __init__(self, msg): super().__init__(msg) class Custom02Exception(Exception): def __

tdremon.tistory.com

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
반응형

댓글