728x90
반응형
가변 인자를 받을 때
- * : positional arguments
- 순서 기반으로 동작 합니다.
- a,b,c = 함수(1,2,3) 이면 a=1, b=2, c=3
- c,b,a = 함수(1,2,3) 이면 a=3, b=2, c=1
- ** : keyword arguments
- key 기반으로 동작 합니다.
- a,b,c = 함수(c="3", b="2", a="1") 이면 a=1, b=2, c=3
- a,b,c = 함수(a="1", b="2", c="3") 이면 a=1, b=2, c=3
둘이 함께 사용도 가능하지만, * 이 ** 보다 와야 합니다.
def test(*args, **kwargs):
print(args)
print(kwargs)
test('1', '2', '3', fourth='4', fifth='5')
# 결과
#('1', '2', '3')
# {'fourth': '4', 'fifth': '5'}
* 응용 방법
nums = [1,2,3]
*a, b = nums
# a = [1,2] 순서를 다 채우고 나머지 요소들이 모두 *a로 들어감
# b = 3 순서적으로 자리만 차지함. 마지막 요소인 3이 마지막 위치인 b에 들어감
이렇게 안하고 평소에 알던대로 뽑으려면 뭐 이런식으로 ?
a, b = nums[:-1], nums[-1]
반응형
'Python > 문법' 카테고리의 다른 글
파이썬(python) 값 전달, 참조 전달 (0) | 2021.05.09 |
---|---|
파이썬(python) 과 C언어의 변수 저장 방식 차이 (1) | 2021.05.09 |
파이썬(python) 리스트 잡기술 (0) | 2021.05.09 |
파이썬(python) 문자열 중복제거 (unique) (2) | 2021.05.01 |
파이썬 (python) 자료형 (0) | 2021.04.23 |