Python 함수의 인수 – 디폴트 인수 값

스폰서 링크
python post logo 파이썬
스폰서 링크

이 글의 소스 샘플은 [Google Colab에서 Python 코드 실행하기] 글에서 언급한 환경을 이용하면 Python 프로그램을 PC에 설치하지 않더라도 Chrome, IE, Edge의 Browser에서 쉽게 Python프로그램을 실행하고 따라할 수 있습니다.

스폰서 링크

디폴트 인수 값

함수의 파라미터는 ‘디폴트 인수 값’을 가질 수 있습니다. ‘인수 기본 값’은 함수 호출 시에 실제 인수를 지정하는 것을 생략하면 해당 파라미터에 자동으로 부여되는 값입니다. 일반적으로 디폴트 동작, 즉 이미 정해진 동작을 실행하여 그 움직임을 약간만 변화시키고 싶을 때 파라미터에 디폴트 인수 값을 갖게 하면 편리합니다.

디폴트 인수 값은 함수를 정의할 때 파라미터 리스트에서 ‘파라미터 이름 = 디폴트 인수 값’으로 지정할 수 있다. 예제 fun5 함수의 파라미터에 디폴트 인수 값을 주고 결과를 확인해보겠습니다.

모든 인수 생략

파라미터 para1, para2, para3을 선언하여 순서대로 1, 2, 3의 값을 디폴트 값으로 지정한 함수입니다.

def fun5 (para1='1', para2='2', para3='3'):
    return f'parameter1:{para1}, parameter2:{para2}, parameter3:{para3}'
#인수를 모두 생략
print (fun5())
parameter1: 1, parameter2 : 2, parameter3 : 3

함수 호출 시에 인수를 모두 생략한 경우, 모두 디폴트 인수 값이 출력되는 것을 확인할 수 있습니다.

일부 인수 생략

#두번째, 세번째 인수 생략
print (fun5(7))
parameter1: 7, parameter2 : 2, parameter3 : 3

인수 7을 넣자 첫번째 파라미터인 para1에 7이 들어간 것을 확인할 수 있습니다.

#para2의 값만 지정
print (fun5(para2=9))
parameter1: 1, parameter2 : 9, parameter3 : 3

두번째 파라미터인 para2의 값을 9로 지정해주자 para1, para3의 값은 디폴트 인수 값으로 출력되었지만 para2의 값은 9가 출력된 것을 확인할 수 있습니다.

잘못된 인수 생략

기본 인수 값을 지정할 때는 파라미터 중 하나에 디폴트 인수 값을 지정하면 해당 파라미터보다 오른쪽의 파라미터도 디폴트 인수 값을 지정해야 합니다. 예를 들어, 다음과 같은 정의는 허용되지 않는다는 것에 주의해야 합니다.

def xfun(para1='1', para2, para3='3'):
    return f'parameter1: {para1}, parameter2: {para2}, parameter3: {para3}'
  File "<ipython-input-13-fa3359e365d3>", line 1
    def xfun(para1='1', para2, para3='3'):
            ^
SyntaxError: non-default argument follows default argument

첫번째 파라미터 para1과 세번째 파라미터 para3은 디폴트 인수 값을 지정하고 있지만, 두번째 파라미터 para2는 지정하지 않은 함수입니다. 디폴트 인수 값을 지정한 첫번째 파라미터 para1의 오른쪽 값인 para2에는 값을 지정하지 않았기 때문에 에러가 발생합니다.

디폴트 인수 값은 파라미터를 많이 가지면서 구체적인 인수가 정해진 경우에 활용할 수 있습니다.

제목과 URL을 복사했습니다