destructuring unpacking
목차
1. def func(*args)
2. def func(**kwargs)
3. 둘 다 한번에 생각하기
함수의 args 매개변수에 *이 붙어있다면 전달되는 인자가 튜플로 묶여서 args에 전달된다.
def print_args(*args):
print(args)
for arg in args:
print(arg)
print_args(1, 2, "three")
결과
(1, 2, 'three') #튜플로 묶임
1
2
three
함수의 kwargs 매개변수에 **이 붙어있다면 전달되는 인자가 딕셔너리로 묶여서 kwargs에 전달된다.
def print_kwargs(**kwargs):
print(kwargs)
for key, value in kwargs.items():
print(f"{key}: {value}")
print_kwargs(name="John", age=25, city="New York")
결과
{'name': 'John', 'age': 25, 'city': 'New York'} #딕셔너리로 묶임
name: John
age: 25
city: New York
def print_args_kwargs(*args, **kwargs):
print('args 출력', args)
print('kwargs 출력', kwargs)
print_args_kwargs(1, 'abc', ['ㄱ', 'ㄴ'], x = 1, y = 2)
결과
args 출력 : (1, 'abc', ['ㄱ', 'ㄴ'])
kwargs 출력 : {'x': 1, 'y': 2}