질문 : 반환, 반환 없음 및 반환 없음?
세 가지 기능을 고려하십시오.
def my_func1():
print "Hello World"
return None
def my_func2():
print "Hello World"
return
def my_func3():
print "Hello World"
그들은 모두 None을 반환하는 것처럼 보입니다. 이 함수의 반환 값이 작동하는 방식에 차이가 있습니까? 하나를 선호하는 이유가 있습니까?
답변
실제 행동에는 차이가 없습니다. 그들은 모두 None
반환하고 그게 다입니다. 그러나이 모든 것을위한 시간과 장소가 있습니다. 다음 지침은 기본적으로 다른 방법을 사용하는 방법 (또는 최소한 내가 배운 방법을 사용해야 함)이지만 절대적인 규칙은 아니므로 필요하다고 생각되면 혼합 할 수 있습니다.
return None 사용
이것은 함수가 실제로 나중에 사용하기 위해 값을 반환한다는 것을 의미하며,이 경우 None
을 반환합니다. 이 값 None
은 다른 곳에서 사용할 수 있습니다. 함수에서 다른 가능한 반환 값이 없으면 return None
다음 예제에서, 우리는 반환 person
의 mother
경우 person
주어진 인간이다. 인간이 아니라면, 그 person
mother
가 없기 None
을 반환합니다 (동물이나 무언가가 아니라고 가정합시다).
def get_mother(person):
if is_human(person):
return person.mother
else:
return None
return 사용
break
in loops와 같은 이유로 사용됩니다. 반환 값은 중요하지 않으며 전체 함수를 종료하기 만하면됩니다. 자주 필요하지 않더라도 일부 장소에서는 매우 유용합니다.
15 prisoners
있고 그들 중 한 명이 칼을 가지고 있다는 것을 알고 있습니다. 우리는 각 prisoner
하나씩 살펴보고 칼이 있는지 확인합니다. prisoners
확인할 이유가 없다는 것을 알기 때문에 기능을 종료 할 수 있습니다. prisoner
를 찾지 못하면 경고를 보냅니다. 이것은 다양한 방법으로 수행 될 수 있으며 return
사용하는 것이 가장 좋은 방법은 아닐 수도 있지만 함수를 종료 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 rest of the prisoners nor raise an alert
raise_alert()
참고 : 반환 값이 잡히지 않기 때문에 var = find_prisoner_with_knife()
수행해서는 안됩니다.
no return at all 사용
이것은 또한 None
을 반환하지만 그 값은 사용되거나 잡히지 않습니다. 단순히 기능이 성공적으로 종료되었음을 의미합니다. 기본적으로 C ++ 또는 Java와 같은 언어의 void
return
하는 것과 같습니다.
다음 예제에서는 사람의 어머니 이름을 설정하고 성공적으로 완료 한 후 기능이 종료됩니다.
def set_mother(person, mother):
if is_human(person):
person.mother = mother
참고 : 반환 값이 잡히지 않기 때문에 var = set_mother(my_person, my_mother)
수행해서는 안됩니다.
출처 : https://stackoverflow.com/questions/15300550/return-return-none-and-no-return-at-all
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python 및 pip, 사용 가능한 모든 버전의 패키지 나열하는 방법 (0) | 2021.12.05 |
---|---|
프로젝트 오일러와의 속도 비교 : C vs Python vs Erlang vs Haskell (0) | 2021.12.05 |
함수 내부의 정적 변수에 해당하는 Python (0) | 2021.12.05 |
파이썬에서 시간 지연을 만드는 방법 (0) | 2021.12.04 |
파이썬의 목록에서 고유 한 값 얻기 (0) | 2021.12.04 |