ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 None
    @ 17. 1 ~ 18/파이썬 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")

    결과값

    None inputs
    False inputs


    위처럼 특별한 상황이라면 예외를 알리는게 낫다.



    def divide(a,b):
    try:
    return a/b
    except ZeroDivisionError:
    raise ValueError("Input Error")

    result = divide(0, 0)

    결과값

    Traceback (most recent call last):

    File "c:\Users\123\Desktop\study\test.py", line 75, in <module>

    result = divide(0, 0)
    File "c:\Users\123\Desktop\study\test.py", line 73, in divide
    raise ValueError("Input Error")
    ValueError: Input Error


    이렇게 된다면 함수의 반환값을 조건식으로 검사할 필요가 없어진다. 오히려 호출하는 쪽에서 잘못된 입력에 대해 예외처리를 하게된다.


    '@ 17. 1 ~ 18 > 파이썬' 카테고리의 다른 글

    파이썬에서의 값 할당 방식  (0) 2018.03.18
    try/except/else/finally  (1) 2018.03.18
    파이썬 컴프리 헨션의 고려사항  (0) 2018.03.15
    문자열 서식  (0) 2018.03.14
    파이썬 리스트 관련  (0) 2018.03.14
Designed by Tistory.