레이블이 반환값인 게시물을 표시합니다. 모든 게시물 표시
레이블이 반환값인 게시물을 표시합니다. 모든 게시물 표시

2015년 5월 27일 수요일

파이썬 함수의 일반 인자와 반환값

 함수에는 입력 인자(argument)가 있을 수도 있고 없을 수도 있으며 반환값도 마찬가지이다. 호출하는 쪽에 반환값을 되돌려주기 위해선 return 이라는 키워드를 이용하여 그 뒤에 반환할 값을 써 주면 된다.

>>> def sayHi():
   print('Hi.')
>>>a = sayHi()
Hi.

여기에서는 반환값이 없는 함수의 결과값을 a변수에 저장하였는데 (일반적이지 않은 방법이긴 하지만) 오류를 발생하지 않는다. 이 경우 a라는 변수에 None 값이 저장된다.

>>> type(a)
NoneType

 함수를 호출하는 쪽에서는 순서대로 값을 입력해야 한다.

>>> def mod(x,y):
….. return x%y
>> mod(3,2) # x에 3, y에 2가 전달된다.

이 예는 x를 y로 나눈 나머지를 반환하는 함수인데 입력 인수는 순서대로 정의된 모든 변수에 주어야 한다. 다음과 같은 호출은 오류를 발생시킨다.

>>> mod()
>>> mod(3)
>>> mod(3,2,1)

이와 같이 함수의 정의부에 변수명만 있는 인자를 일반 인자(standard argument)라고 하며, 호출하는 쪽에서는 반드시 순서와 개수를 맞추어서 넘겨주어야 한다.

 반환 값이 두 개 이상일 경우에는 return 명령 뒤에 콤마(,)로 구분해야 한다.

>>> def cal(x,y):
...     return x+y, x-y         
...
>>> cal(11,22)  # 반환값은 튜플이다.
(33, -11)
>>> a,b=cal(33,44)
>>> a
77
>>> b
-11

이 간단한 예제에서 cal() 함수는 두 수의 합과 차 두 개를 반환한다. 호출하는 쪽에서는 결과 값들의 튜플을 받게 된다. 다른 변수로 각각 받으려면 위와 같이 하면 된다.

>>> a, b = cal(33,44)

a변수에는 합이, b변수에는 차가 저장됨을 알 수 있다.