@ 17. 1 ~ 18/파이썬
파이썬 None
namoeye
2018. 3. 18. 17:33
특별한 의미를 나타내려고 함수의 반환값에(뭐 보통은..error나 잘못된 리턴값을 표현할때?) None을 하게된다면..
오류를 일으키기 쉬울 수도 있다. 이유는 None이나 다른 값이 조건식에서 False로 평가되기 때문이다.
def divide(a,b):
try:
return a/b
except ZeroDivisionError:
return None
result = divide(0, 0)
if result is None:
print("None inputs")
if result:
print("True Input")
if not result:
print("False inputs")
if result is False:
print("is False inputs")
결과값
위처럼 특별한 상황이라면 예외를 알리는게 낫다.
def divide(a,b):
try:
return a/b
except ZeroDivisionError:
raise ValueError("Input Error")
result = divide(0, 0)
결과값
이렇게 된다면 함수의 반환값을 조건식으로 검사할 필요가 없어진다. 오히려 호출하는 쪽에서 잘못된 입력에 대해 예외처리를 하게된다.