Python

파이썬 함수의 고급 기능: *args와 **kwargs 사용법

sécurité de l'information 2023. 11. 29.
파이썬 함수의 고급 기능: *args와 **kwargs 사용법

안녕하세요! 이번 게시글에서는 파이썬 함수의 고급 기능 중 하나인 *args와 **kwargs에 대해 알아보겠습니다. 이 기능들은 파이썬에서 함수를 정의할 때 매개변수의 개수를 동적으로 처리하고자 할 때 유용하게 사용됩니다.

*args 사용법

*args는 함수의 매개변수로 여러 개의 인자를 전달할 수 있도록 해줍니다. 이를 통해 함수를 정의할 때 인자의 개수를 미리 정하지 않고도 유연하게 처리할 수 있습니다. *args는 튜플 형태로 전달되며, 함수 내에서는 이를 반복문을 통해 처리할 수 있습니다.

def my_function(*args):
    for arg in args:
        print(arg)
        
my_function(1, 2, 3, 4, 5)

위의 예시에서는 my_function 함수를 정의할 때 *args를 사용하여 인자를 여러 개 전달할 수 있도록 했습니다. 함수 내에서는 for 반복문을 통해 *args에 전달된 인자들을 하나씩 출력하고 있습니다. 이를 실행하면 1, 2, 3, 4, 5가 순서대로 출력됩니다.

*args를 사용하는 경우, 함수를 호출할 때 전달하는 인자의 개수에 제한이 없으므로 다양한 상황에서 유연하게 사용할 수 있습니다. 예를 들어, 여러 개의 숫자를 더하는 함수를 작성한다고 가정해보겠습니다.

def sum_numbers(*args):
    total = 0
    for num in args:
        total += num
    return total
    
result = sum_numbers(1, 2, 3, 4, 5)
print(result)

위의 예시에서는 sum_numbers 함수를 정의할 때 *args를 사용하여 인자들을 전달받고, 반복문을 통해 인자들을 모두 더한 후 결과를 반환하고 있습니다. 이를 실행하면 1부터 5까지의 숫자를 모두 더한 결과인 15가 출력됩니다.

**kwargs 사용법

**kwargs는 함수의 매개변수로 여러 개의 키-값 쌍을 전달할 수 있도록 해줍니다. 이를 통해 함수를 정의할 때 키-값 쌍의 개수를 미리 정하지 않고도 유연하게 처리할 수 있습니다. **kwargs는 딕셔너리 형태로 전달되며, 함수 내에서는 이를 반복문을 통해 처리할 수 있습니다.

def print_info(**kwargs):
    for key, value in kwargs.items():
        print(key, value)
        
print_info(name="John", age=30, city="Seoul")

위의 예시에서는 print_info 함수를 정의할 때 **kwargs를 사용하여 키-값 쌍을 전달받고, 반복문을 통해 키와 값의 쌍을 모두 출력하고 있습니다. 이를 실행하면 "name John", "age 30", "city Seoul"이 순서대로 출력됩니다.

**kwargs를 사용하는 경우, 함수를 호출할 때 전달하는 키-값 쌍의 개수에 제한이 없으므로 다양한 상황에서 유연하게 사용할 수 있습니다. 예를 들어, 여러 개의 인자를 받아서 이를 이용해 딕셔너리를 생성하는 함수를 작성한다고 가정해보겠습니다.

def create_dict(**kwargs):
    my_dict = {}
    for key, value in kwargs.items():
        my_dict[key] = value
    return my_dict
    
result = create_dict(name="John", age=30, city="Seoul")
print(result)

위의 예시에서는 create_dict 함수를 정의할 때 **kwargs를 사용하여 키-값 쌍을 전달받고, 반복문을 통해 이를 딕셔너리에 추가한 후 결과를 반환하고 있습니다. 이를 실행하면 {"name": "John", "age": 30, "city": "Seoul"}이 출력됩니다.

정리

이번 게시글에서는 파이썬 함수의 고급 기능인 *args와 **kwargs에 대해 알아보았습니다. *args는 함수의 매개변수로 여러 개의 인자를 전달할 수 있도록 해주고, **kwargs는 함수의 매개변수로 여러 개의 키-값 쌍을 전달할 수 있도록 해줍니다. 이를 통해 함수를 정의할 때 인자의 개수나 키-값 쌍의 개수를 미리 정하지 않고도 유연하게 처리할 수 있습니다.

*args와 **kwargs는 함수를 작성할 때 유용한 기능이지만, 사용할 때 주의해야 할 점도 있습니다. 예를 들어, *args와 **kwargs를 함께 사용하는 경우, 순서에 주의해야 합니다. 또한, 함수를 호출할 때 인자의 개수나 키-값 쌍의 개수를 신중하게 결정해야 합니다. 이를 통해 원하는 결과를 얻을 수 있습니다.

마지막으로, *args와 **kwargs는 파이썬 함수의 고급 기능 중 하나일 뿐만 아니라 다른 언어에서도 유사한 기능을 제공하는 경우가 많습니다. 이러한 기능을 잘 활용하면 코드의 가독성과 유지보수성을 높일 수 있습니다. 따라서 *args와 **kwargs에 대한 이해는 파이썬 프로그래밍 능력을 향상시키는 데 큰 도움이 될 것입니다.

이상으로 *args와 **kwargs의 사용법에 대해 알아보았습니다. 파이썬 함수를 작성할 때 유용한 기능이므로, 적절한 상황에서 적극적으로 활용해 보시기 바랍니다. 감사합니다!

댓글

💲 추천 글