29.2 덧셈 함수 만들기

지금까지 만들어본 hello 함수는 동작이 고정되어 있습니다. 즉, 같은 문자열만 출력하죠. 이러면 함수를 사용하는 의미가 없습니다. 이번에는 함수에 값을 넣어서 동작을 바꿔보겠습니다.

함수에서 값을 받으려면 ( )(괄호) 안에 변수 이름을 지정해주면 됩니다. 특히 이 변수를 매개변수(parameter)라고 부릅니다.

def 함수이름(매개변수1, 매개변수2):
    코드

이제 두 수를 더하는 함수를 만들어보겠습니다. 다음과 같이 함수의 괄호 안에 매개변수 ab를 지정하고, 그다음 줄에서 printab의 합을 출력합니다.

>>> def add(a, b):
...     print(a + b)
...

add 함수가 만들어졌습니다. 그럼 add 함수에 10과 20을 넣어서 호출해봅니다.

>>> add(10, 20)
30

10과 20을 더한 값인 30이 출력되었습니다. 여기서 함수를 호출할 때 넣는 값을 인수(argument)라고 부릅니다. 즉, add(10, 20)에서 10과 20이 인수입니다.

add 함수의 호출 과정을 그림으로 표현하면 다음과 같은 모양이 됩니다.

그림 29-2 함수에 매개변수 사용
참고 | 함수 독스트링 사용하기

파이썬에서는 함수의 :(콜론) 바로 다음 줄에 """ """(큰따옴표 세 개)로 문자열을 입력하면 함수에 대한 설명을 넣을 수 있습니다. 이런 방식의 문자열을 독스트링(문서화 문자열, documentation strings, docstrings)이라고 합니다. 단, 독스트링의 윗줄에 다른 코드가 오면 안 됩니다.

def 함수이름(매개변수):
    """독스트링"""
    코드
 
def 함수이름(매개변수):
    """
    여러 줄로 된 
    독스트링
    """
    코드

독스트링은 ' '(작은따옴표), " "(큰따옴표), ''' '''(작은따옴표 세 개)로 만들어도 되지만, 파이썬 코딩 스타일 가이드(PEP 8)에서는 """ """(큰따옴표 세 개)를 권장합니다.

앞에서 만든 add 함수에 독스트링으로 설명을 추가해보겠습니다.

function_documentation_strings.py

def add(a, b):
    """이 함수는 a와 b를 더한 뒤 결과를 반환하는 함수입니다."""
    return a + b
 
x = add(10, 20)       # 함수를 호출해도 독스트링은 출력되지 않음
print(x)
 
print(add.__doc__)    # 함수의 __doc__로 독스트링 출력

실행 결과

30
이 함수는 a와 b를 더한 뒤 결과를 반환하는 함수입니다.

독스트링은 함수의 사용 방법만 기록할 뿐 add(10, 20)으로 함수를 호출해도 출력되지 않습니다. 독스트링을 출력하려면 print(add.__doc__)와 같이 함수의 __doc__을 출력하면 됩니다.

다음과 같이 help에 함수를 넣으면 함수의 이름, 매개변수, 독스트링을 도움말 형태로 출력해줍니다.

help(객체)

>>> help(add)
Help on function add in module __main__:
 
add(a, b)
     함수는 a와 b를 더한  결과를 반환하는 함수입니다.

독스트링을 적절히 작성해두면 나중에 본인이 만든 코드를 다른 사람이 사용할 때 좀 더 편리하게 사용할 수 있습니다.