[파이썬] *args, **kwargs

주재민·2023년 11월 1일

이것저것

목록 보기
1/8
post-thumbnail

*args

Python 함수에서 사용되는 파라미터(parameter)로, 함수가 호출되고 여러 개의 인자(argument)를 입력받는 상황에서 유연성을 높여주는 기능을 제공한다.

기존의 방식대로 함수에 여러가지 인자들을 전달하려면, 함수를 선언하고 괄호안에 전달되는 인자의 개수에 맞춰서 여러가지 파라미터들을 작성해주어야 했지만 *args를 사용하면 보다 간편하고 유연하게 함수에 여러가지 인자가 전달되는 상황을 처리할 수 있다.

예시

def example(*args):
    for arg in args:
        print(arg)
example(1, 2, 3, 4)
#        1
#        2
#        3
#        4
example('apple', 'banana', 'coconut')
#        apple
#        banana
#        coconut

위와 같이 int형 매개변수를 작성할 필요없이 단 한줄로 전달되는 입력값들을 모두 처리할 수 있으며 전달되는 인자의 개수나 인자의 자료형이 바뀌어도 유연하게 처리 할 수 있다.

**kwargs

Python 함수에서 사용되는 파라미터(parameter)의 하나로, 함수가 호출될 때 여러 개의 키워드 인자(keyword argument)를 받을 수 있도록 기능을 제공한다.

여기서 키워드 인자란 name='John', age=30, city='New York'와 같이 인자의 값이 key값과 value값으로 구분되어 있는 경우를 의미하며 이 때, key값에 해당하는 name,age,city가 변수명과 같은 역할을 담당하며, value는 그 변수의 값에 해당한다.

예시

def example(**kwargs):
    for key, value in kwargs.items():
        print(f"{key} = {value}")
example(a=1, b=2, c=3, d=4)
#        a = 1
#        b = 2
#        c = 3
#        d = 4
example(name='John', age=30, city='New York')
#        name = John
#        age = 30
#        city = New York

위와 같이 전달되는 키워드 인자의 개수가 바뀌고, 그 내부의 key 혹은 value값이 변경되는 경우에도 이를 유연하게 처리할 수 있다.

0개의 댓글