코딩공부
[python]args, kwargs / TIL_220915
Dong_Devlog
2022. 9. 15. 20:34
args와 kwargs는 함수에서 인자로 받을 값들의 갯수가 많거나 불규칙할 때 주로 사용된다.
함수를 선언할 때 args는 앞에 *를 붙여 명시하고, kwargs는 앞에 **를 붙여 명시한다.
하지만 꼭 저 단어를 쓸 필요가 없다. *abc, **abc로 적어도 된다.
아래와 같이 같은 결과 값을 볼 수 있다.
def add(*abc):
return abc
print(add(1, 2, 3)) #(1, 2, 3)
def add(*args):
return args
print(add(1, 2, 3)) #(1, 2, 3)
*args는 아래와 같이 인자의 수와 상관없이 사용할 수 있다.
add 함수의 *args에 입력된 인자가 튜플 형식으로 저장되는 것이다.
def add(*args):
result = 0
for i in args:
result += i
return result
print(add()) # 0
print(add(1, 2, 3)) # 6
print(add(1, 2, 3, 4)) # 10
**kwargs는 함수에서 여러개의 인자를 key - value 형태로 받을 때 사용한다.
**kwargs는 딕셔너리 형태로 저장 된다.
def name_age(**kwargs):
print(kwargs)
name_age(name="홍길동", age="50")
# {'age': '50', 'name': '홍길동'}
*args와 **kwargs를 같이 사용할 수 도 있다.
인자가 int 값이나 str값이나 상관없이 받을 수 있다.
def print_arguments(a, b, *args, **kwargs):
print(a)
print(b)
print(args)
print(kwargs)
print_arguments(
1, # a
2, # b
3, 4, 5, 6, # args
hello="world", keyword="argument" # kwargs
)
# result print
"""
1
2
(3, 4, 5, 6)
{'hello': 'world', 'keyword': 'argument'}
"""