[Python] 가변인자
2022. 11. 14. 15:07
가변인자
매개변수를 원하는 만큼 받을 수 있는 함수
- 가변 매개변수 뒤에 일반 매개변수는 올 수 없음
- 가변 매개변수는 하나만 사용 가능
- 기본 매개변수가 가변 매개변수보다 앞에 와도 의미 없음 (n=2, *values)
- 가변 매개변수가 기본 매개변수보다 앞에 올 때 가변 매개변수가 우선 (*values, n=2)
# *args(언팩킹)
def args(*args):
for i, v in enumerate(args):
print('Result : {}'.format(i), v)
print('------')
args('Sso')
args('Yeon')
Result : 0 Sso
------
Result : 0 Yeon
------
튜플 형태의 0번 인덱스로 인식
아래와 비교해보자.
def args2(args):
for i, v in enumerate(args):
print('Result : {}'.format(i), v)
print('------')
args2('Sso')
args2('Yeon')
Result : 0 S
Result : 1 s
Result : 2 o
------
Result : 0 Y
Result : 1 e
Result : 2 o
Result : 3 n
------
딕셔너리 가변인자
# **kwargs(언팩킹)
def kwargs(**kwargs):
for v in kwargs.keys():
print("{}".format(v), kwargs[v])
print('------')
kwargs(name='Kim')
kwargs(name='Kim', name2='Sso')
name Kim
------
name Kim
name2 Sso
------
가변인자 + 딕셔너리 가변인자
def variable_param(args_1, args_2, *args, **kwargs):
print(args_1, args_2, args, kwargs)
# *args, **kwargs를 하나로 취급함
variable_param(10, 20, 'Kim', 'Sso', 'Yeon', age1=20, age2=30, age3=40)
10 20 ('Kim', 'Sso', 'Yeon') {'age1': 20, 'age2': 30, 'age3': 40}
*args, **kwargs를 각 하나로 취급함
'Python > 파이썬 초급' 카테고리의 다른 글
| [Python] class (클래스와 인스턴스) (0) | 2022.11.19 |
|---|---|
| [Python] import (0) | 2022.11.19 |
| [Python] for-else 문 (0) | 2022.11.11 |
| [Python] 튜플(팩킹, 언팩킹) (0) | 2022.11.11 |
| [Python] 딕셔러니 (dictionary) (0) | 2022.11.11 |