SortedDict는 표준 딕셔너리의 프로토콜을 지키므로, 앞에서 정의한 함수를 호출하면서 SortedDict 인스턴스를 표준 dict 위치에 사용해도 아무런 오류가 발생하지 않는다. 하지만 실행 결과는 요구 사항에 맞지 않는다.
sorted_ranks = SortedDict() populate_ranks(votes, sorted_ranks) print(sorted_ranks.data) winner = get_winner(sorted_ranks) print(winner) >>> {'otter': 1, 'fox': 2, 'polar bear': 3} fox
여기서 문제는 get_winner의 구현이 populate_ranks의 삽입 순서에 맞게 딕셔너리를 이터레이션한다고 가정했다는 데 있다. 이 코드는 dict 대신 SortedDict를 사용하므로 이 가정은 더 이상 성립하지 않는다. 따라서 우승 동물로는 득표수가 1등인 동물이 아니라 알파벳 순서로 맨 앞에 오는 동물인 fox가 반환된다.