더북(TheBook)

여기에서 rep의 기본값은 1이다. 마지막 인수에 아무 값도 주어지지 않는다면 1로 설정된다. 그러면 다음과 같이 함수를 호출하면 숫자 5를 한 번 출력할 것이다.

dprint_nums(5)

다음과 같이 출력된다.

5

Note ≡


이번 함수는 인수 이름으로 n을 사용했고, n은 반드시 숫자일 것이라고 가정하고 있다. 하지만 파이썬은 변수나 인수를 선언하는 문법이 없기 때문에 이를 강제할 수 있는 방법이 없다. 즉, n에 문자열이 전달될 수도 있다는 것이다.

하지만 파이썬에서 간접적으로 데이터 타입을 명시하는 방법이 있다. 이번 예에서는 두 번째 인수 rep에 숫자가 아닌 값을 넘기면 문제가 발생한다. 이 인수에 전달된 값은 반복적으로 숫자와 비교하게 될 것이며, 값이 주어지면 숫자이어야 한다. 그렇지 않으면 런타임 에러 예외 상황이 발생한다.

기본값 인수를 함수 정의문에 넣으려면 반드시 모든 인수를 표기한 다음에 넣어야 한다.

또 하나의 특수 기능으로 명명 인수(named arguments)12가 있다. 기본값을 설정하는 것과 혼동하지 말아야 한다. 기본값 인수는 함수 정의문에서 사용되지만, 명명 인수는 함수를 호출할 때 사용된다.

 

 


12 역주 키워드 인수(keyword arguments)라고도 부른다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.