본문 바로가기
Python

가변인자 *args, **kwargs

by 코드뭉치 2023. 5. 31.

1️⃣ **args (Positional Variadic Arguments)

 

*args는 위치 인자를 임의의 개수로 받을 수 있다.

함수를 호출할 때 넣은 위치 인자들은 튜플로 묶여서 함수 내부로 전달된다.

 

def foo(*args):
    print(args) #(1, 2, 3, 4, 5)
    
foo(1, 2, 3, 4, 5)

 

 

2️⃣ **kwargs (Keyword Variadic Arguments)

 

**kwargs는 키워드 인자를 임의의 개수로 받을 수 있다.

함수를 호출할 때 넣은 키워드 인자들은 딕셔너리로 묶여서 함수 내부로 전달된다.

def var(**kwargs):
    print(kwargs) # {'name': 'codemte', 'age': 100, 'status': 'good', 'a': False, 'b': None}

var(name="codemte", age=100, status="good", a=False, b=None)

 

 

3️⃣딕셔너리 dict.get("key")과 ["key"]의 차이

 

.get("key") 사용 시 해당하는 key가 없다면, None

dict["key"] 사용 시 해당하는 key가 없다면, KeyError

def var(**kwargs):
  # e = kwargs["codemte"] > KeyError: 'codemte'
    e = kwargs.get("codemte") # None
    print(e) # None

var(name="codemte", age=100, status="good")

 

댓글