매개 변수의 개수를 지정하지 않고 전달하는 방법을 가변 매개변수(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 |
댓글