*args : args는 함수에 임의의 개수의 위치 인자(Positional Arguments)를 전달하는 데 사용. 이 때 인자는 튜플(tuple) 형태로 저장되며, 함수내에서 args라는 변수를 사용하여 처리.
예제:
def my_function(*args):
for arg in args:
print(arg)
my_function(1, 2, 3, 4)
1
2
3
4
my_function 함수는 *args 매개변수를 사용해 여러 개의 위치 인자를 받아들임. 함수를 호출할 때 1, 2, 3, 4의 값들을 전달하면, 이 값들이 args라는 튜플 내에 저장되고 함수 안에서 다룰 수 있음.
**kwargs : kwargs는 함수에 임의의 개수의 키워드 인자(Keyword Arguments)를 전달하는 데 사용. 이 때 인자는 딕셔너리(dictionary) 형태로 저장되며, 함수 내에서 kwargs라는 변수를 사용하여 처리.
def my_function(**kwargs):
for key, value in kwargs.items():
print(f"{key} = {value}")
my_function(a=1, b=2, c=3)
a = 1
b = 2
c = 3
위 예제에서 my_function 함수는 kwargs 매개변수를 사용해 여러 개의 키워드 인자를 받아들임. 함수를 호출할 때 a=1, b=2, c=3의 값들을 전달하면, 이 값들이 kwargs라는 딕셔너리 내에 저장되고 함수 안에서 다룰 수 있음. *args와 kwargs는 동시에 사용할 수도 있으며, 필요한 만큼 매개변수와 함께 사용할 수 있음. 다만 다음과 같은 순서를 유지해야 함.
이처럼 *args와 **kwargs는 함수나 메서드에서 가변 인자를 처리할 때 유용한 도구로, 여러 개의 인자를 유연하게 다룰 수 있게 해줌.