본문 바로가기

dev/python

[python] 함수의 결과는 언제나 하나다?

[python] 함수 - 함수 기본

[python] 함수 - 일반적이지 않은 함수

[python] 함수 - *args, **kwargs


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이 있는 라인에서 함수를 빠져나가게 된다

'dev > python' 카테고리의 다른 글

[python] 자료형 - List  (0) 2022.02.21
[python] Regular Expression - Meta characters  (0) 2022.02.21
[python] 함수 - *args, **kwargs  (0) 2022.02.16
[python] 함수 - 일반적이지 않은 함수  (0) 2022.02.07
[python] 함수 - 함수 기본  (0) 2022.02.06