[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