파이썬(Python)/문법

별표하나 별표두개 (*arg, **kwarg)

끄적끄적아무거나 2020. 11. 24. 11:31
반응형

파이썬에서 함수 인자 앞에 별표 한개를 쓰느냐 두개를 쓰는 것에 대해 간단히 설명하겠다. 

 

별표 없이 인자만 선언되어 있을 경우는 함수에 인자 갯수는 정의에 따라 고정되고 항상 동일한 수로 입력 해야한다. 

 

하지만 별표 한개로 (*)로 정의 하면 인자 수를 제한 없이 사용할 수 있는 장점이 있다. 함수 내부에서는 해당 인자를 튜플로 인식해서 사용 된다. 

 

별표 두개는 key 값과 value로 받아서 dictionary로 만들어 준다. 함수 내부에서는 해당 dictionary 형태로 사용할 수 있는 것이다. 

 

또는 미리 key 값을 선언해 놓으면 dictionary로 넣을 경우 value 값만 받는 형태로도 사용할 수 있다.

 

def arg_test(*args):
    print(type(args))
    print(args)
    for _ in args:
        print(_)

def kwarg_test(**kwargs):
    print(type(kwargs))
    print(kwargs)
    for _ in kwargs:
        print(_, kwargs[_])  

def kwarg_test2(width, height, weight):
    print(width, height, weight)

a_var = {'weight': 360}
print(a_var['weight'])

arg_test(2, 4, 7)
kwarg_test(a=1, b=3, c=6)
kwarg_test2(width=120, height=180, **a_var)

 

 

결과>>

360
<class 'tuple'>
(2, 4, 7)
2
4
7
<class 'dict'>
{'a': 1, 'b': 3, 'c': 6}
a 1
b 3
c 6
120 180 360

 

 

반응형

'파이썬(Python) > 문법' 카테고리의 다른 글

continue, break, pass 차이  (0) 2020.11.26
collections.defaultdict 이란  (0) 2020.11.25
파이썬 변수는 객체이다  (0) 2020.11.23
locals(), globals()  (0) 2020.11.23
enumerate, index값 불러오기  (0) 2020.11.21