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변수에는 차가 저장됨을 알 수 있다.


댓글 없음:

댓글 쓰기