새로 만든 이 클래스는 setdefault 호출의 복잡도를 제대로 감춰주며, 프로그래머에게 더 나은 인터페이스를 제공한다.
visits = Visits() visits.add('러시아', '예카테린부르크') visits.add('탄자니아', '잔지바르') print(visits.data) >>> {'러시아': {'예카테린부르크'}, '탄자니아': {'잔지바르'}}
하지만 Visits.add 메서드 구현은 여전히 이상적이지 않다. setdefault라는 메서드 이름은 여전히 헷갈리기 때문에 코드를 처음 읽는 사람은 코드 동작을 바로 이해하기 어렵다. 그리고 주어진 나라가 data 딕셔너리에 있든 없든 관계없이 호출할 때마다 새로 set 인스턴스를 만들기 때문에 이 구현은 효율적이지도 않다.