코드가 길지만, 앞에서 여러 번 다뤘으므로 익숙할 겁니다. 바뀐 부분만 따로 표시했습니다. 생성자 __init__() 부분을 추가하고 속성과 메서드를 사용할 때 앞에 self를 붙였습니다.
나머지 analysis1()과 analysis4() 메서드를 봅시다. analysis1() 메서드만 보면 analysis1(self)로 변경하면 됩니다. 그런데 analysis4() 메서드에는 두 지역을 비교하기 위해 analysis1() 메서드를 호출하는 부분이 있죠. analysis1(dong_name, dong_code)에서 매개변수 dong_name, dong_code를 삭제하고 analysis1(self)로 작성하면 핫플레이스가 있는 지역의 평균인구는 self.name, self.code로 구할 수 있습니다. 하지만 비교하려는 지역의 평균인구는 구할 수 없습니다. 매개변수가 self 하나여서 비교하려는 지역의 행정동명과 코드를 전달받을 수 없기 때문이죠. 따라서 행정동명과 행정동코드를 전달받는 매개변수를 analysis1()에 그대로 두어야 합니다. 물론 가장 앞에 객체를 전달받는 self를 추가하고요.
analysis1() 메서드를 작성해 봅시다(하위 목표 1 부분에 추가하면 됩니다).
# 하위 목표 1
# analysis4()에서 다른 지역을 넣어 호출하는 부분이 있어 매개변수를 그대로 두어야 함
def analysis1(self, dong_name, dong_code, graph_yn = 'y'):
population = [0 for i in range(24)]
for row in data:
if row[2] == dong_code:
time, p = row[1], row[3]
population[time] += p
population = [p/31 for p in population]
if graph_yn == 'n':
return population
population = [population]
labels = ['평균인구']
title = dong_name + ' 시간대별 평균인구'
self.graph_plot(popu_list=population, label_list=labels, graph_title=title)