[Python] return을 사용해야 되나 return None을 사용해야 되나.

4408 단어 Python3Pythonreturn

return 문장으로 함수 처리를 끝내려면 return None을 사용해야 합니까, 아니면 return을 사용해야 합니까?


Python의 함수를 쓸 때 갑자기 의문이 드는 일.
함수의 중간에 처리를 끝내려면 return 를 써야 하는가 return None 를 써야 하는가 하는 문제다.
Python이 명확하게 쓰라고 추천했기 때문에 리턴 문장으로 처리를 끝낼 때와 되돌아올 때 None 써야 한다고 망설였습니다.(※ Python에서는 함수 정의에 return None만 적혀 있거나 return에 대한 설명이 없는 경우 return로 돌아갑니다.참조: [Python] return 함수가 반환하는 값이 기록되지 않았습니다.
결론적으로 함수만 끝내고 싶을 때None가 좋다.
하지만 return만 쓸 때 주의해야 할 것이 몇 가지 있는 것 같다.

예를 들다


return, return None, and no return at all? 참조.예를 들어 설명하다.

return 사용

def hello_all():
    persons = ['Zepp', 'Eric']

    if persons:
        for person in persons:
             print('Hello ' + person)
    # リストが空だったらNoneを返す
    else:
        return None

return None 사용


반환 값의 None을 사용하려면 return 을 명확하게 쓰지만, 반환 값이 아닌 종료 함수를 사용하려면 return None 을 사용하십시오.다음 코드는 for 순환을 종료하고 함수를 종료하는 데 사용됩니다.
def hello_zepp():

    persons = ['Zepp', 'Eric']

    for person in persons:
        print('Hello ' + person)
        # 処理を終了
        return
즉, for순환이 단중이라면 그 작용은 return과 같다.
여러 개의 for 순환에 끼워 넣은 for 순환에서 처리를 끝내려면 break 과 달리 break 하나만 쓰면 함수를 끝낼 수 있기 때문에 코드가 간단합니다.
이렇게 사용return할 때, 함수의 중간에 처리를 강제로 끝내려고 할 때, 예를 들어 순환을 통과할 때 사용한다.

주의사항


이런 상황에서 반환값return은 사용으로 간주되지 않기 때문에 반환값을 변수에 대입할 수 없습니다.
# ↓はやってはダメ
result = hello_zepp()
또 함수를 중간에 끝내려면 조건에 맞지 않아 처리를 중단하려는 경우도 포함된다.이런 상황에서 사용None보다 적당한 예외류를 만들어 예외를 배제하고 호출자에서 예외 처리를 하는 것이 좋다.

return 설명 없음


Python의 함수는 반드시 return 문장이 필요하지는 않지만, return 문장이 없어도 return 를 반환값으로 합니다.
# return文は無いが戻り値としてNoneが返される
def hello_eric():

    persons = ['Zepp', 'Eric']
        print('Hello ' + persons[1])
이 경우 None 의 경우와 마찬가지로 이 return None 를 사용한다고 가정하지 않기 때문에 반환값을 변수에 대입할 수 없습니다.

결론

  • 함수 처리만 중단하려면 None 를 사용하는 것이 좋다.
  • 반환값return을 이용한 경우None.
  • 다중순환을 단숨에 통과할 때return None가 편리할 수 있다.
  • return나 리턴 문장이 없는 반환값return을 사용하지 않습니다.
  • 좋은 웹페이지 즐겨찾기