더북(TheBook)

이렇게 만든 클래스들의 코드 줄 수는 예전에 (딕셔너리와 튜플로) 구현한 코드의 거의 두 배다. 하지만 새 코드가 훨씬 읽기 쉽다. 클래스를 사용하는 예제 코드도 더 읽기 쉽고 확장성이 좋아졌다.

book = Gradebook()
albert = book.get_student("알버트 아인슈타인")
math = albert.get_subject("수학")
math.report_grade(75, 0.05)
math.report_grade(65, 0.15)
math.report_grade(70, 0.80)
gym = albert.get_subject("체육")
gym.report_grade(100, 0.40)
gym.report_grade(85, 0.60)
print(albert.average_grade())

 

>>>
80.25

하위 호환성을 제공하는 메서드를 작성해, 예전 스타일의 API를 사용 중인 코드를 새로운 객체 계층을 사용하는 코드로 쉽게 마이그레이션할 수도 있을 것이다.