brunch

기초개념 - *args, **kwargs

destructuring unpacking

by 내가 사는 세상

목차

1. def func(*args)

2. def func(**kwargs)

3. 둘 다 한번에 생각하기




1. def func(*args)


함수의 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





2. def func(**kwargs)

함수의 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





3. 둘 다 한번에 생각하기


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}

매거진의 이전글개체지향 - 프로퍼티, 데코레이터