함수의 파라미터: default vs. non-default

정은경·2019년 12월 3일
1

<글의 주제>

함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안된다고 배웠습니다.
왜 안돼야만 하는지 생각해보세요.

default vs. non-default

parameter는 함수가 호출 될때 넘겨지는 값들을 전달받아 저장하는 매개변수입니다.
parameter는 없을 수도 있고, 1개일 수도 있고 여러개 일 수도 있습니다.

여러 개의 parameter를 받는 경우, 전달받은 여러개의 값을 여러 매개변수에 각각 저장해야합니다.
그럼 어떻게 어느 값을 어느 매개변수에 저장해야하는 가하는 문제가 생깁니다.

아래와 같이 매개변수가 3개라면,

#파이썬코드
function hiImNonDefaultParas (paraD1, paraD2, paraD3):
	print("나는 파라미터 3개를 받는 함수다");

전달받은 순선대로 각각 저장됩니다.
첫번째 전달받은 값은 paraD1에
두번째 전달받은 값은 paraD2에
세번째 전달받은 값은 paraD3에!

매개변수에는 위에처럼 어떤 값인지 정해지지 않은 non-default parameter도 있고,
아래와 같이 매개변수의 값을 정해두는 default-parameter도 존재합니다.

#파이썬코드
function hiImDefaultParas (paraN1="a", paraN2="b", paraN3="c"):
	print("나는 파라미터의 값을 미리 정해둔 함수다");

paraN1은 "a"라고 미리 정해두었고
paraN2는 "b"라고 미리 정해두었고
paraN3은 "c"라고 미리 정해두었죠!

그렇다면 매개변수가 default인 경우, non-default인 경우가 섞여있는 경우는 어떻게 될까요?
편의상, non-default를 앞쪽에 몰아서 선언,
default를 non-default들 매개변수 뒤에 선언을 합니다!
섞여있으면 누가 default고 non-default인지 구분하기 어렵기 때문입니다.

그래서, non-default와 default 파라미터가 함께 존재하는 경우 아래와 같의 선언합니다.

#파이썬코드
function hiImAllParas (paraD1, paraD2, ParaD3, paraN1="a", paraN2="b", paraN3="c"):
	print("나는 값이 정해지지 않은 디폴트 매개변수와 값이 미리 정해진 매개변수를 모두 갖고 있는 함수다");

The end.

profile
#의식의흐름 #순간순간 #생각의스냅샷

1개의 댓글

comment-user-thumbnail
2019년 12월 4일

크게 생각해보지 않은 부분이었는데 덕분에 한 번 더 짚고 가요~ 좋은 글 감사합니다

답글 달기