python 가변인자 *, 가변 키워드인자 **

2019. 8. 19. 12:25PL/Python

- 개수가 정해지지 않은 변수를 함수의 파라미터로 사용하는 방법

- * asterisk 기호를 사용해서 함수의 파라미터를 표시한다

- 가변인자로 입력된 값은 tuple type으로 사용된다 (참고로 tuple은 () 안에 데이터를 담는다)

- 오직 한 개만 사용할 수 있고, 맨 마지막에서 사용되어야 한다

- 보통 가변인자 이름은 args를 약속처럼 사용한다

 

# args에는 tuple 형태로 (3, 4, 5)가 들어간다
def asterisk_test(a, b, *args):
    print(args)
    return a+b+sum(args)


print(asterisk_test(1, 2, 3, 4, 5))

 

 

asterisk에서의 unpacking에서도 * 가변인자를 사용해 가변 길이의 데이터를 받아올 수 있다

 

def asterink_test(*args):
    x, y, *z = args
    return x, y, z


print(asterink_test(1, 2, 3, 4, 5, 6, 7, 8))

 

 

가변 키워드인자 **는 c++의 map과 유사하다, 키워드와 값을 같이 할당해준다

 

def kwargs_test(**kwargs):
    print(kwargs)


kwargs_test(a=1, b=2, c=3)
kwargs_test(first=1, second=2, third=3)

 

 

가변키워드 인자는 다음과 같이 원소에 접근할 수 있다

kwargs["키워드"]

 

def kwargs_test(**kwargs):
    print(kwargs["a"])


kwargs_test(a=1, b=2, c=3)