본문 바로가기
카테고리 없음

[파이썬] 가변인자 *args와 **kwargs

by 오디세이99 2022. 9. 16.
728x90
반응형

*가 붙어있어서 C언어를 하신 분들은 포인터와 연관시킬 수 있는데, 파이썬에서는 포인터가 아닙니다.

 

*args : arguments = 함수 인자(arguments)의 값을 받아올 수 있음(튜플)

**kwargs : keyword arguments = 함수 인자의 keyword를 받을 수 있음. 이 keyword로 값을 받을 수 있음(튜플)

def func(*args, **kwargs):
    rtn = []
    for i in args:      # 순자적으로 args의 값들을 가져옴
        rtn.append(i)
    
    print('*args=',rtn)
    
    rtn = []
    rtn2 = []
    for i in kwargs:    # 순차적으로 kwargs의 kwyword들을 가져옴
        v = kwargs[i]    # keyword를 가지고 값을 찾음
        rtn.append(i)    # keyword
        rtn2.append(v)   # value
    
    print('**kwargs(keyword)=',rtn,' /**kwargs(value)=',rtn2)

func(1,2,a=3,b=4,c=5)

결과

*args= [1, 2]
**kwargs(keyword)= ['a', 'b', 'c']  /**kwargs(value)= [3, 4, 5]

 

위 코드에서는 args, kwargs라고 했지만 꼭 이 이름을 사용해야 하는 것이 아니고, *, ** 붙여 사용하면 되는 것입니다.

728x90
반응형

댓글