Python | *args 와 **kwargs 란

소리·2024년 1월 21일
0

args

: Positional Argument (포지셔널 아규먼트)

함수에 정의한 순서대로 인자를 보내는 방법으로, 인수의 순서를 지켜야 한다.

kwargs

: keyword Argument

인수를 전달할 때 매개변수명을 명시하는 방법으로, 순서가 바뀌어도 상관없다.

가변인자 전달

인수를 받을 때 인수의 개수가 가변적인 경우 *args, **kwargs를 사용한다.

# args :  n개의 인자를 받고 싶다면

def sum_n_ints(*args):
	return sum(args)
    
#kwargs

def sum_in_ints(**kwargs):
	print(kwargs)
    print(tytpe(kwargs))
    return sum(kwargs.values())
    
>>> sum_n_ints(a=1, b=2, c=3)

{'a':1, 'b': 2, 'c' : 3}
<class 'dict'>
6

같이 사용하기

  • 순서 : args > kwargs (순서가 다른 경우 syntax error 발생)
def sample(*args, **kwargs):
	print(type(args)))
    print(args)
    print(type(kwargs)))
    print(kwargs)
    
>>> sample(1,2,3,4,5, a=1, b=2, c=3)

<class 'tuple'>
(1, 2, 3, 4, 5)
<class 'dict'>
{'a':1, 'b': 2, 'c' : 3}
  • args, kwargs 하나로 포지셔널, 키워드 아규먼트를 각각 모두 커버하므로, 한 번만 쓰면 된다.

  • 디폴트 값을 가진 키워드 아규먼트를 넣고 싶다면 **kwargs 앞에 작성해야한다.

출처 출처2

profile
데이터로 경로를 탐색합니다.

0개의 댓글