매개 변수의 개수를 지정하지 않고 전달하는 방법을 가변 매개변수(Arrbitary Argument) 라고 한다.
매개 변수의 수가 상황에 따라서 변하는데
- *args : Positional argument(매개변수)로 tuple로 반환
- **kwargs : keyword argument(매개변수)로 dictionaty로 반환{'key':value}
아래의 예시를 살펴보자
*args 예시 1
def function(*args):
print(args)
if __name__ == "__main__":
function(1, 'a', 'bcd')
[출력결과]
(1, 'a', 'bcd')
*args 예시 2
def function(*args):
for i,v in enumerate(args):
print(i, v)
if __name__ == "__main__":
function(1, 'a', 'bcd')
[출력결과]
0 1
1 abc2 bcd
enumerate는 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다. index와 value를 함께 출력하고 싶을 때 주로 사용한다.
**kwargs 예시 1
def function(**kwargs):
for k,v in kwargs.items():
print(k,v)
if __name__ == "__main__":
function(n1 = 1, n2 = 2, n3 = 3)
[출력결과]
n1 1
n2 2
n3 3
items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.
'ETC' 카테고리의 다른 글
[python] 클래스의 특별한 메서드 (0) | 2021.12.12 |
---|---|
[python] List보다 Numpy 가 빠른 이유 (0) | 2021.11.21 |
모의 객체(Mock Object) 란? (0) | 2021.11.19 |
mac M1에서 안드로이드 애뮬레이터 사용하기 (0) | 2021.11.06 |
[ios]애뮬레이터 키보드 자판 보이기 (0) | 2021.11.06 |
[python] 파이썬에서 언더스코어('_') 가 가지는 다양한 의미 (0) | 2021.11.03 |
댓글