안녕세계

[Python] args와 kwargs 본문

[Python] args와 kwargs

Junhong Kim 2018. 12. 2. 20:38
728x90
반응형

*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

https://wikidocs.net/24

728x90
반응형
Comments