> 백엔드 개발 > 파이썬 튜토리얼 > Python 함수: Return None, Return 또는 No Return 문 - 무엇을 사용해야 합니까?

Python 함수: Return None, Return 또는 No Return 문 - 무엇을 사용해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-10 11:24:20
원래의
405명이 탐색했습니다.

Python Functions: Return None, Return, or No Return Statement—Which Should You Use?

Python 함수: Return 문 탐구

많은 Python 프로그래머는 return None, return 또는 no return 문 중에서 선택해야 하는 딜레마에 직면합니다. 함수를 작성할 때 전혀. 이 문서에서는 이러한 접근 방식 간의 미묘한 차이점을 살펴보고 각 접근 방식이 언제 적절한지에 대한 지침을 제공합니다.

삼중 함수:

다음 세 가지 함수를 고려하세요.

def my_func1():
  print("Hello World")
  return None

def my_func2():
  print("Hello World")
  return

def my_func3():
  print("Hello World")
로그인 후 복사

얼핏 보면 세 함수 모두 None을 반환하는 것처럼 보입니다. 그러나 자세히 살펴보면 동작에 미묘한 차이가 있습니다.

return None 사용:

이는 함수가 값을 반환하도록 설계되었음을 명시적으로 나타냅니다. 이 경우 없음. 이 값은 나중에 코드의 다른 곳에서 활용될 수 있습니다. return None은 함수가 제공하려는 특정 반환 값이 있는 경우 일반적으로 사용됩니다.

예를 들어, 다음 함수는 사람인 경우 그 사람의 어머니를 반환하고 그렇지 않으면 None을 반환합니다.

def get_mother(person):
    if is_human(person):
        return person.mother
    else:
        return None
로그인 후 복사

return 사용:

이는 루프의 break 문과 유사하게 작동합니다. 주로 함수 실행을 종료하는 역할을 하며 반환 값은 중요하지 않습니다. 자주 필요하지는 않지만 return은 특정 시나리오에서 유용할 수 있습니다.

죄수 그룹 중에서 칼을 든 죄수를 검색하는 다음 예를 생각해 보세요.

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return  # No need to check the remaining prisoners or raise an alert
    raise_alert()
로그인 후 복사

함수의 반환 값은 더 이상 사용할 수 없으므로 변수에 할당하면 안 됩니다.

No return 사용 설명:

이 접근 방식도 None을 반환하지만 이는 특정 반환 값 없이 함수가 성공적으로 완료되었음을 의미합니다. 기본적으로 C 또는 Java와 같은 언어에서 void 함수의 반환과 동일한 역할을 수행합니다.

def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
로그인 후 복사

결론:

세 메서드 모두 궁극적으로 None을 반환하지만 서로 다른 목적을 가지고 있습니다. return None은 특정 반환 값을 전달해야 할 때 사용됩니다. return은 함수 실행을 명시적으로 종료하는 데 사용되며, return 문을 사용하지 않는 것은 지정된 반환 값 없이 함수가 성공적으로 완료된 것을 나타냅니다.

위 내용은 Python 함수: Return None, Return 또는 No Return 문 - 무엇을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿