본문 바로가기
ETC

[python] 가변 매개변수(Arrbitary Argument) 란?

by 안주형 2021. 11. 9.

매개 변수의 개수를 지정하지 않고 전달하는 방법을 가변 매개변수(Arrbitary Argument) 라고 한다.

매개 변수의 수가 상황에 따라서 변하는데

  • *args : Positional argument(매개변수)로 tuple로 반환
  • **kwargs : keyword argument(매개변수)로 dictionaty로 반환{'key':value}

아래의 예시를 살펴보자

*args 예시 1

def function(*args):
    print(args)

if __name__ == "__main__":
    function(1, 'a', 'bcd')

[출력결과]
(1, 'a', 'bcd')

 

*args 예시 2

def function(*args):
    for i,v in enumerate(args):
        print(i, v)

if __name__ == "__main__":
    function(1, 'a', 'bcd')


[출력결과]
0 1
1 abc2 bcd

enumerate는 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다. index와 value를 함께 출력하고 싶을 때 주로 사용한다.

 

**kwargs 예시 1

def function(**kwargs):
    for k,v in kwargs.items():
        print(k,v)

if __name__ == "__main__":
    function(n1 = 1, n2 = 2, n3 = 3)

[출력결과]
n1 1
n2 2
n3 3

items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.

댓글