brunch

You can make anything
by writing

C.S.Lewis

by 내가 사는 세상 Jan 16. 2024

기초개념 - *args, **kwargs

destructuring unpacking

목차

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}

매거진의 이전글 개체지향 - 프로퍼티, 데코레이터
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari