이 코드는 충분히 평이하고 직관적이다. 다단계 딕셔너리를 처리해야 해서 report_grade와 average_grade 메서드가 꽤 복잡해졌지만, 아직은 복잡도를 관리할 수 있는 수준으로 보인다. 클래스는 여전히 쉽게 사용할 수 있다.
book = BySubjectGradebook()
book.add_student("알버트 아인슈타인")
book.report_grade("알버트 아인슈타인", "수학", 75)
book.report_grade("알버트 아인슈타인", "수학", 65)
book.report_grade("알버트 아인슈타인", "체육", 90)
book.report_grade("알버트 아인슈타인", "체육", 95)
print(book.average_grade("알버트 아인슈타인"))
>>>
81.25