본문 바로가기
혼자 공부하는 파이썬/기타

chatGPT가 알려준 가변 매개변수

by 야광비행 2024. 1. 26.

가변 매개변수(variable-length arguments)는 함수 정의 시에 개수가 정해지지 않은 매개변수를 다룰 때 사용됩니다. 파이썬에서는 `*args`와 `**kwargs` 두 가지 형태의 가변 매개변수를 지원합니다.

1. `*args` (Positional Arguments):
   - `*args`는 함수에 임의의 개수의 위치 인자를 전달할 수 있게 합니다.
   - 함수 정의 시에 `*args`를 사용하면, 함수 내에서 해당 변수는 튜플로 처리됩니다.
   - 예시:

    ```python
    def example_function(*args):
        for arg in args:
            print(arg)

    example_function(1, 2, 3, 4)
    ```

    위의 예제에서 `*args`는 1, 2, 3, 4를 포함하는 튜플로 전달됩니다.

2. `**kwargs` (Keyword Arguments):
   - `**kwargs`는 함수에 임의의 개수의 키워드 인자를 전달할 수 있게 합니다.
   - 함수 정의 시에 `**kwargs`를 사용하면, 함수 내에서 해당 변수는 딕셔너리로 처리됩니다.
   - 예시:

    ```python
    def example_function(**kwargs):
        for key, value in kwargs.items():
            print(f"{key}: {value}")

    example_function(a=1, b=2, c=3)
    ```

    위의 예제에서 `**kwargs`는 {'a': 1, 'b': 2, 'c': 3}을 포함하는 딕셔너리로 전달됩니다.

가변 매개변수를 함께 사용할 수도 있습니다. 예를 들어, 함수를 정의할 때 `*args`와 `**kwargs`를 함께 사용하면 어떤 형태의 인자도 다룰 수 있습니다.

```python
def example_function(*args, **kwargs):
    for arg in args:
        print(arg)
    
    for key, value in kwargs.items():
        print(f"{key}: {value}")

example_function(1, 2, 3, a=4, b=5)
```

이렇게 하면 위치 인자는 `*args`에, 키워드 인자는 `**kwargs`에 각각 할당되어 처리됩니다.