더북(TheBook)

첫 번째 베이스 케이스는 정수가 아닌 경우를 다루고, 두 번째 베이스 케이스는 음수인 경우를 다룬다. 두 경우에 대해 프로그램은 오류 메시지를 출력하고 None을 반환해 뭔가가 잘못되었다고 알려준다.

>>> factorial('fred')

Factorial is only defined for integers.

None

>>> factorial(-2)

Factorial is not defined for negative integers.

None

두 가지 검사를 모두 통과한다면 n이 양수 또는 0이므로 재귀가 종료된다는 것을 증명할 수 있다.

이 프로그램은 수호자(gurdian)라고 부르는 패턴을 보여준다. 처음 두 조건문이 수호자처럼 동작해서 오류를 일으킬 수 있는 값으로부터 코드를 보호하는 것이다. 수호자로 코드의 정확성을 보증하는 것도 가능하다.

191쪽의 역방향 조회에서 오류 메시지를 출력하는 더 유연한 방법, 즉 예외 일으키기를 살펴볼 것이다.

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