non-default value parameter에 대해서

배찬영·2021년 5월 12일

파이썬

목록 보기
28/31

함수를 정의 할때 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+k
def func(i, j = 10, k):
   return i+j+k

이와 같이 default parameter의 순서를 마지막이 아닌 처음 , 중간에 순서되어 있으면 에러를 발생한다.

func(1, 2) #함수 호출 2개의 parameter
def 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의 값이 없음

이러한 이유로 에러를 발생하는 것으로 파악이 된다.

profile
안녕하세요

0개의 댓글