본문 바로가기
데이터분석/python

python 함수 매개변수 앞의 *(Asterisk),**의 의미는 무엇일까?

by 디찌s 2020. 11. 13.
728x90
반응형

*도움이 되셨다면 광고 한번 클릭 부탁드립니다! 제게 큰 힘이됩니다!

 

 

github나 여러 코드저장소에서 다른 사용자들의 python 코드를 보면 아래와같이 쓰는경우를 많이 봤을것이다.

위에서의 매개변수가 무엇을 의미하는지에 대해 알아보자.

 

 

함수의 매개변수 정의 앞에 * 붙어있는 경우

 

 func1 함수의 방법처럼 매개변수 args 앞에 *가 1개가 붙어있는 경우에는 매개변수 args를 가변적인 갯수를 가진 위치 인수로 정의하겠다는 의미이다. 즉, 아래와 같이.

위와 같이 매개변수를 가변 갯수의 위치 인수로 설정하였기에 임의의 변수들이 출력 된것을 볼수있다.

그러므로 *args를 사용할때는 특정 변수가 여러개 들어갈수도있는 상황에서 사용하면 될것이다.

 

함수의 매개변수 정의 앞에 ** 붙어있는 경우

func2처럼 kwargs앞에 **가 붙어있는 경우에는 매개변수 args를 가변적인 갯수를 가진 인수로 정의하겠다는 의미이다.

 

 

이번에는 위에서 *가 1개만 붙어있는 경우와 달리 kwargs가 딕셔너리로 전달되었다는것을 알수있다.

 

딕셔너리 형태로 전달된 키워드 인수 각각을 사용하고 싶다면 함수 내부에서 딕셔너리의 각 요소에 접근하면된다.

 

for문을 이용해 kwargs.items()함수를 통해 key,val 값을 가져와 출력해주는 것도 가능하다.

 

728x90
반응형

'데이터분석 > python' 카테고리의 다른 글

내장 순차 자료형 함수 sorted,zip,reversed  (0) 2020.11.13

댓글