함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하게 되면 에러가 발생하게 된다. 그 이유가 뭘까?
def func(i, j, k): return i+j+k함수 정의하는 방법이다. parameter 값을 받아 그 값으로 함수의 연산을 통해 값을 반환 해준다.
여기서 만약 값이 정해져 주지 않는다면 아래와 같이 default 값을 넣어 줄 수 있다.def func(i, j, k = 10): return i+j+k다만 주의 사항이 있다
def func(i = 10, j, k): return i+j+kdef func(i, j = 10, k): return i+j+k이와 같이 default parameter의 순서를 마지막이 아닌 처음 , 중간에 순서되어 있으면 에러를 발생한다.
func(1, 2) #함수 호출 2개의 parameterdef func(i, j, k = 10): return i+j+k #순서대로 i = 1, j = 2, k = 10 의 값으로 13을 반환올바른 함수일 때
def func(i = 10, j, k): return i+j+k #func(1, 2)에 따라 순서대로 i = 1, j = 2, k = ?? k의 값이 없다def func(i, j = 10, k): return i+j+k #위에 내용가 같아 순서대로 i = 1, j = 2, k = ?? k의 값이 없음
이러한 이유로 에러를 발생하는 것으로 파악이 된다.