Python
가변인자 *args, **kwargs
코드뭉치
2023. 5. 31. 01:38
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")