29.2 덧셈 함수 만들기
지금까지 만들어본 hello 함수는 동작이 고정되어 있습니다. 즉, 같은 문자열만 출력하죠. 이러면 함수를 사용하는 의미가 없습니다. 이번에는 함수에 값을 넣어서 동작을 바꿔보겠습니다.
함수에서 값을 받으려면 ( )(괄호) 안에 변수 이름을 지정해주면 됩니다. 특히 이 변수를 매개변수(parameter)라고 부릅니다.
def 함수이름(매개변수1, 매개변수2): 코드
이제 두 수를 더하는 함수를 만들어보겠습니다. 다음과 같이 함수의 괄호 안에 매개변수 a와 b를 지정하고, 그다음 줄에서 print로 a와 b의 합을 출력합니다.
>>> 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 함수의 호출 과정을 그림으로 표현하면 다음과 같은 모양이 됩니다.
파이썬에서는 함수의 :(콜론) 바로 다음 줄에 """ """(큰따옴표 세 개)로 문자열을 입력하면 함수에 대한 설명을 넣을 수 있습니다. 이런 방식의 문자열을 독스트링(문서화 문자열, 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를 더한 뒤 결과를 반환하는 함수입니다.
독스트링을 적절히 작성해두면 나중에 본인이 만든 코드를 다른 사람이 사용할 때 좀 더 편리하게 사용할 수 있습니다.