본문 바로가기

언어/Python

[ Python ] 가변 인수 리스트 'args' 사용하기

반응형

파이썬에서 *args는 가변 인수 리스트를 함수에 전달하는 방법을 제공하는 문법입니다. 이를 통해 함수가 호출될 때, 임의의 수의 인수를 받을 수 있습니다. *args는 위치 인수(위치 기반의 인수)를 받아들이며, 함수 내에서 튜플 형태로 처리됩니다.

1. *args의 사용법

기본 사용법

*args는 함수 정의에서 사용하여 여러 개의 인수를 받을 수 있게 합니다. 함수 내에서는 args가 튜플로 전달된 인수들을 포함하게 됩니다.

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

# 함수 호출
example_function(1, 2, 3) 
# 출력:
# 1
# 2
# 3

위의 예제에서, example_function은 세 개의 인수를 받았으며, args(1, 2, 3)이라는 튜플로 전달되었습니다.

예제 1: 여러 인수를 받아서 합계 계산

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3, 4))  # 출력: 10
print(sum_all(10, 20, 30))  # 출력: 60

여기서 sum_all 함수는 임의의 수의 인수를 받아 그 합계를 반환합니다.

예제 2: 문자열 형식 지정

*args를 사용하여 문자열을 포맷팅할 때 유용하게 사용할 수 있습니다.

def concatenate_strings(*args):
    return " ".join(args)

print(concatenate_strings("Hello", "world!"))  # 출력: Hello world!
print(concatenate_strings("Python", "is", "fun"))  # 출력: Python is fun

2. 혼합된 인수 사용

함수에서 *args를 다른 인수와 혼합하여 사용할 수 있습니다. 이 경우, *args는 위치 인수 다음에 와야 합니다.

def mixed_args(arg1, arg2, *args):
    print("arg1:", arg1)
    print("arg2:", arg2)
    print("args:", args)

mixed_args(1, 2, 3, 4, 5)
# 출력:
# arg1: 1
# arg2: 2
# args: (3, 4, 5)

3. *args**kwargs 함께 사용

*args**kwargs를 함께 사용하여 위치 인수와 키워드 인수를 모두 받을 수 있습니다.

def combined_args_kwargs(*args, **kwargs):
    print("args:", args)
    print("kwargs:", kwargs)

combined_args_kwargs(1, 2, 3, a=4, b=5)
# 출력:
# args: (1, 2, 3)
# kwargs: {'a': 4, 'b': 5}

4. 함수 호출 시 * 사용

함수 호출 시에도 *를 사용하여 리스트나 튜플을 인수로 분해할 수 있습니다.

def example_function(a, b, c):
    print(a, b, c)

args = (1, 2, 3)
example_function(*args)  # 출력: 1 2 3

5. 예제 코드

아래는 다양한 방식으로 *args를 사용하는 예제입니다.

# 기본 사용 예제
def print_all(*args):
    for arg in args:
        print(arg)

print_all(1, 'hello', 3.14)
# 출력:
# 1
# hello
# 3.14

# 합계 계산 예제
def sum_numbers(*args):
    return sum(args)

print(sum_numbers(1, 2, 3, 4))  # 출력: 10

# 문자열 결합 예제
def concatenate(*args):
    return " ".join(args)

print(concatenate("Python", "is", "awesome"))  # 출력: Python is awesome

# 혼합된 인수 사용 예제
def mixed(a, b, *args):
    print(a, b)
    print(args)

mixed(1, 2, 3, 4, 5)
# 출력:
# 1 2
# (3, 4, 5)

# *args와 **kwargs 함께 사용 예제
def mixed_args_kwargs(*args, **kwargs):
    print("args:", args)
    print("kwargs:", kwargs)

mixed_args_kwargs(1, 2, 3, x=10, y=20)
# 출력:
# args: (1, 2, 3)
# kwargs: {'x': 10, 'y': 20}

# 함수 호출 시 * 사용 예제
def function(a, b, c):
    print(a, b, c)

args = (10, 20, 30)
function(*args)  # 출력: 10 20 30

이 예제들을 통해 *args의 사용 방법과 유용성을 이해할 수 있습니다. *args는 다양한 수의 인수를 유연하게 처리할 수 있게 해주는 강력한 기능입니다.

반응형