dev/python
[python] 함수의 결과는 언제나 하나다?
Jayce_kim
2022. 2. 17. 08:30
def func_1(num1,num2):
return num1,num2
func_1(10,20)
입력받은 수를 그대로 내보내는 간단하고 쓸모없는 함수다
이 함수의 리턴값은 어떤 것일까?
함수는 값이 1개 뿐이어야 하는데 2개의 값이 나오니 에러가 뜰까?
아니면 그냥 쉽게 값을 1개씩 리턴할까?
정답은 (10,20)
튜플값으로 리턴한다
10과 20을 모두 리턴하면서 1개만 리턴할 수 있는 좋은 방법인듯하다
이렇듯 함수의 리턴값은 무조건 하나다!
하지만 사람의 욕심은 끝이 없는 법 튜플형식의 값이 아니라 각각의 값을 리턴받고 싶다면
다음과 같이 결과값을 뽑을 수도 있다
def func_1(num1,num2):
return num1,num2
result1, result2= func_1(10,20)
print(result1)
>>10
print(result2)
>>20
a,b=(1,2) 일 때 a=1. b=2 가 되는 튜플의 성질을 이용한 방법이다
그럼 또 이런 생각을 해볼 수도 있다
def func(a,b):
return a
return b
func(1,2)
아니, 그런 생각은 하지도 말아라
함수의 리턴값은 하나다 그건 불변이고
이렇게 작성한다면 일단 VScode에서 빨간줄부터 보게 될거다
아래쪽의 리턴값은 실행되지도 않는다
왜냐면 return은 값을 돌려주고 함수를 빠져나가기 떄문이다
그럼 우린 또 이런 생각도 해볼 수 있다
def func(a):
if a==0:
return
print('life is too short, you need python.')
func(0)
이럴 경우에는 print문은 실행하지도 못하고 return이 있는 라인에서 함수를 빠져나가게 된다