Python에서 함수를 선언할 때 이름 앞에 * 또는 **이 붙은 특수한 형태의 매개변수를 사용 가능하다.
1. *매개변수 (가변 개수 매개변수)
def func1(*args):
print(args)
def func2(num, *args):
print(num, args)
func1(1, 2, 3, 4) # 실행결과: (1, 2, 3, 4)
func2(1, 2, 3, 4) # 실행결과: 1 (2, 3, 4)
매개변수명 앞에 *을 붙일 경우 매개변수들을 튜플의 형태로 묶어 전달받게된다. 이러한 형태의 매개변수는 하나만
사용 가능하며(두 개 이상 사용될 경우 서로 구분이 불가능) 일반적인 매개변수와 함께 사용 가능하다. 이 경우 일반
변수는 호출 시에 변수이름을 명시하거나 가변 개수 매개변수보다 먼저 입력받도록 선언해야한다.
2. **매개변수 (키워드 매개변수)
def func1(**args):
print(args)
def func2(num, **args):
print(num, args)
func1(a=2) # 실행결과: {'a': 2}
func2(3, a=3) # 실행결과: 3 {'a': 3}
매개변수명 앞에 **을 붙일 경우 key=value형태의 매개변수를 dictionary 타입으로 저장한다. 일반 매개변수나
가변 개수 매개변수와 혼용할 경우 반드시 마지막으로 입력받도록 선언해야한다.
'언어 > Python' 카테고리의 다른 글
#12 json 모듈 (0) | 2021.09.23 |
---|---|
#11 흐름제어 (조건문, 반복문) (0) | 2021.05.27 |
#9 입력을 받는 여러 방법 (0) | 2021.04.06 |
#8 우선순위 큐(heapq) (0) | 2021.04.05 |
#7 데크(deque) (0) | 2021.04.05 |