오늘 포스팅에선 Python 함수의 매개변수에 대해 공부할 것이다.
함수에 넣는 인자를 매개변수라고 부르는데
가변 매개변수, 기본 매개변수, 키워드 매개변수 등 종류가 다양하다.

가변 매개변수
원래 함수를 선언할 땐 매개변수와 함수를 호출할 때의 매개변수가 같아야 한다.
하지만 여태 사용했던 print( )를 보면 매개변수를 원하는만큼 입력할 수 있었다.
이와 같이 매개변수를 원하는 만큼 입력 받을 수 있는 함수를 가변 매개변수라고 부른다.
def 함수 이름(매개변수, 매개변수, ... , *가변 매개변수):
□□□□ 문장
가변 매개변수를 사용하는데 2가지 제약사항이 있다.
1. 가변 매개변수 뒤에는 일반 매개변수가 오지 못한다.
: 어디까지가 가변 매개변수인지 알기 힘들기 때문에
2. 가변 매개변수는 하나만 사용이 가능하다.
#가변 매개변수 함수의 예
def print_n_times(n, *values):
#n번 반복하는 코드
for i in range(n):
#values값은 리스트처럼 활용한다.
for value in values:
print(value)
print()
print_n_times(3,"안녕하세요", "즐거운", "파이썬프로그래밍")
'''
출력결과
안녕하세요
즐거운
파이썬프로그래밍
안녕하세요
즐거운
파이썬프로그래밍
안녕하세요
즐거운
파이썬프로그래밍
...
기본 매개변수
다음은 print( ) 함수의 자동 완성 기능으로 나오는 설명이다.
print(value, ..., sep= ' ', end='\n', file=sys.stdout, flush=False)
가장 앞에 있는 value가 앞에서 말한 '가변 매개변수'이다. 분명 앞에선 가변 매개변수 뒤에 일반 매개변수가 올 수 없다고 했는데 print( )함수의 경우를 보니깐 다르다. 이 뒤에 오는 함수는 '매개변수=값'의 형태로 들어가는 기본 매개변수라고 부른다. 기본 매개변수는 아무것도 입력하지 않았을 경우 디폴트값을 지정해주는 역할을 한다.
역시나 기본 매개변수에도 제약이 존재한다.
* 기본 매개변수 뒤엔 일반 매개변수가 올 수 없다.
def print_n_times(value, n=2):
for i in range(n):
print(value)
print_n_times("안녕하세요") #n의 디폴트값으로 2를 지정해주어서 따로 지정안하면 2번출력된다.
'''
출력결과
안녕하세요
안녕하세요
'''
기본 매개변수를 이해할 수 있는 간단한 코드 예시이다.
키워드 매개변수
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하세요","호등입니다.", 3)
위와 같은 코드를 실행했을때 어떤 결과가 나올지 예측해보자.
1) ["안녕하세요", "호등입니다"]가 3번 출력됨
2) ["안녕하세요", "호등입니다", 3]이 2번 출력됨
위 코드를 실행하면 2)와 같이 출력된다.
가변 매개변수가 우선이 되어 "안녕하세요"부터 3까지 value로 들어가기 때문이다.
파이썬엔 이런 상황을 대비하기 위해 키워드 매개변수 라는 기능을 만들었다.
1)번과 같이 입력하고 싶으면 print_n_times("안녕하세요" ,"호등입니다.", n=3) 으로 입력하면 해결된다.
n=3처럼 매개변수 이름과 값을 지정하는 매개변수를 키워드 매개변수라고 한다.
'자기계발 > Python' 카테고리의 다른 글
[Python] 기본13. 함수 고급(튜플과 람다) (0) | 2022.03.08 |
---|---|
[Python] 기본12. 재귀함수와 메모화 (0) | 2022.03.07 |
[Python] 기본10. 문자열, 리스트, 딕셔너리와 관련된 기본 함수 (0) | 2022.03.04 |
[Python] 기본9. range()와 while 반복문 (0) | 2022.03.02 |
[Python] 기본8. 딕셔너리와 for()반복문 (0) | 2022.03.01 |