Python >
개수를 지정하지 않고 파라미터 받기
1. 변수명 앞에 * 붙이기
1) 함수를 정의하면서 인자 앞에 *을 썼을 때
1
2
3
4
5
def func1(arg1: int, *args_tuple: int) -> None:
for arg in args_tuple:
print(arg)
func1(1, 2, 3, 4, 5)
함수를 정의하면서 인자 앞에 * 표시를 쓰면, 인자로 전달받은 값들을 하나의 튜플에 담아 그 튜플이 * 표시와 함께 쓰인 그 변수명에 전달되게 된다.
2) 함수를 호출하면서 매개변수 앞에 *을 썼을 때
1
2
3
4
def func2(a: int, b:int, c:int) -> None:
print(a, b, c)
func2(*[1, 2, 3])
함수를 호출하면서 매개변수 앞에 * 표시를 쓰면, 설사 그 함수가 정의 부분에서 여러 개의 인자를 받더라도 매개변수로 넘길 때는 리스트나 튜플을 쓸 수 있다.
2. 변수명 앞에 ** 붙이기
1
2
3
4
5
def func2(arg1: int, **kwargs_dict: str) -> None:
for key, value in kwargs_dict.items():
print(f"key is '${key}' and value is '${value}'")
func2(2, fruit="사과", vegetable="배추")
함수에서 파라미터를 쓰는 부분에 ** 표시와 함께 변수명을 쓰면, 파라미터로 전달받은 값들을 하나의 딕셔너리에 담아 그 딕셔너리가 ** 표시와 함께 쓰인 그 변수명에 전달되게 된다.
Python 카테고리의 다른 글