반응형
파이썬에서 *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
는 다양한 수의 인수를 유연하게 처리할 수 있게 해주는 강력한 기능입니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] Decorator와 Profiler 사용하기 (0) | 2024.07.07 |
---|---|
[ Python ] 가변 인수 리스트 **kwargs를 사용하기 (0) | 2024.07.07 |
[ Python ] 함수를 객체로 다루어 디버깅에 사용하기 (profiling) (0) | 2024.07.07 |
[ Python ] 파이썬 기본 패키지를 알아보자. (0) | 2024.07.07 |
[ Python ] 유명한 파이썬 패키지 알아보기 (0) | 2024.07.07 |