안녕세계
[Python] args와 kwargs 본문
[Python] args와 kwargs
Junhong Kim 2018. 12. 2. 20:38
*args
매개변수 앞에 *
을 붙이면 입력 값을 모아 tuple
로 만듭니다.
def func(*args):
# args == (1,2,3)
total = 0
for arg in args:
total = total + arg
return total
print(func(1, 2, 3))
# 6
**kwargs
함수의 인수로 key=value
형태가 주어지면 입력 값 전체가 kwargs
라는 dict
에 저장 됩니다.
def func(**kwargs):
print(kwargs)
print(func(x=1))
# {'x': 1}
*args와 **kwargs
*args
와 **kwargs
가 동시에 사용될 경우, 일반적인 입력
은 args의 tuple
로 저장되고 key=value
형태는 kwargs의 dict
로 저장됩니다.
def func(*args, **kwargs):
print(args)
print(kwargs)
func(1, 2, 3, 4, name='foo', age=3)
# (1, 2, 3, 4)
# {'name: 'foo', 'age': 3}
주의사항
키워드 형태의 인수 뒤에 키워드 형태가 아닌 인수는 올수 없습니다.
fun(1, 2, 3 name='foo', age=3, 4)
# File "example.py" line 1
# func(1, 2, 3, name='foo', age=3, 4)
#
# SyntaxError: positional argument follows keyword argument
References
'Language > Python' 카테고리의 다른 글
[Python] try..except 예외처리 (0) | 2018.12.03 |
---|---|
[Python] dictionary 자료형 (0) | 2018.12.03 |
[Python] Comprehension (List, Set, Dictionary) (0) | 2018.03.30 |
[Python] enumerate()를 활용한 index, value 동시 접근 (0) | 2018.03.29 |
[Python] datetime, timestamp 변환 (0) | 2018.03.26 |