╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

Python/Python 기초

[Python] 함수 2 (디폴트 매개변수)

재안안 2022. 3. 9. 20:23

파이썬에서 함수를 사용하며 빼놓을 수 없는 기능들이 있다.

매개변수 개념의 연장선인 디폴트 매개변수, *args, **kwards이다.

 

이번엔 디폴트 매개변수에 대해 알아보겠다.

디폴트 매개변수를 설명하기전에 알아야하는 개념이 있다.

 

함수의 선언과 호출시 매개변수(parameter)와 인수(argument)의 갯수가 같아야한다는 것을

기억해야 디폴트 매개변수의 용도를 이해할 수 있다.

 

디폴트 매개변수(default parameter)는 값을 가지는 매개변수이다.

사용 방법은 함수 선언시 매개변수에게 대입연산자를 사용해 값을 지정해주면 된다.

 

함수 호출시 인수가 전달되면 전달된 인수의 값이 적용되고 전달되지 않았다면 디폴트값이 적용된다.

 

아래의 예제를 통해 확인하겠다.

 

디폴트 매개변수 사용 예제
실행 결과

 

해당 예제에서는 함수 선언에서 n=5를 이용해 매개변수 n의 디폴트 값을 5로 지정해주었다.

 

9번에서는 함수 호출에 인수 10을 넘겨주어 n=10, 1~10의 합인 55가 출력되었고

10번에서는 함수 호출에 인수를 넘겨주지 않아 n=5, 1~5의 합인 15가 출력되었다.

 

이처럼 디폴트 매개변수는 인수 전달이 안될 경우를 생각해 사용한다.

 

 

디폴트 매개변수를 사용할 때 주의할 점이 있다.

 

만약 매개변수를 여러개 사용하는 경우와 매개변수와 디폴트 매개변수를 혼용해 사용하는 경우이다.

결론부터 말하자면 디폴트 매개변수를 뒤쪽으로 몰아서 지정해주어야 한다는 것이다.

 

아래의 예제를 통해 한번에 설명하겠다.

 

매개변수, 디폴트 매개변수 혼합 사용 예제

 

해당 예제를 보면 dparameter는 총 4개의 매개변수와 디폴트 매개변수를 가진다.

디폴트 매개변수는 뒤쪽에 몰아서 선언되었고

15~17번의 함수 호출문에선 전달하는 인수의 갯수가 차이난다.

 

실행 결과

 

실행 결과를 보면 dparameter의 출력문으로 인해 각 매개변수의 값이 출력되었다.

 

15번은 함수를 호출하며 인수 1을 넘겨주었고 이는 a의 값이 되었다.

16번은 함수를 호출하며 인수 1, 2를 넘겨주었고 이는 a, b의 값이 되었다.

17번은 함수를 호출하며 인수 1, 2, 3을 넘겨주었고 이는 a, b, c의 값이 되었다.

 

해당 결과를 보면 함수의 매개변수가 여러개일 경우, 인수는 왼쪽부터 차례대로 넘겨준다는 것을 알 수 있다.

그리고 디폴트 매개변수 사용시, 호출문에서 최소 매개변수의 수만큼만 이라도 인자를 넘겨주면 함수는 실행된다.

 

 

만약 디폴트 매개변수가 왼쪽에 선언되었을 경우 아래와 같이 구문오류가 뜬다.

 

디폴트 매개변수 우선 선언
콘솔창