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'}
"""
'코딩공부' 카테고리의 다른 글
[python] 재귀함수 회문 검사 / TIL_220920 (0) | 2022.09.20 |
---|---|
[python] 재귀함수(Recursive Function) / TIL_220919 (0) | 2022.09.19 |
[python]set 집합 자료형 함수 / TIL_220916 (0) | 2022.09.16 |
python map 함수 _ TIL 4일차 (0) | 2022.09.01 |
CSS display: grid (0) | 2022.08.29 |
댓글