더북(TheBook)

BETTER WAY 22
딕셔너리와 튜플보다는 헬퍼 클래스로 관리하자

 

 

파이썬에 내장되어 있는 딕셔너리 타입은 객체의 수명이 지속되는 동안 동적인 내부 상태를 관리하는 용도로 아주 좋다. 여기서 ‘동적’이란 예상하지 못한 식별자들을 관리해야 하는 상황을 뜻한다. 예를 들어 이름을 모르는 학생 집단의 성적을 기록하고 싶다고 해보자. 학생별로 미리 정의된 속성을 사용하지 않고 딕셔너리에 이름을 저장하는 클래스를 정의할 수 있다.

class SimpleGradebook(object):

def __init__(self):

self._grades = {}

 

def add_student(self, name):

self._grades[name] = []

 

def report_grade(self, name, score):

self._grades[name].append(score)

 

def average_grade(self, name):

grades = self._grades[name]

return sum(grades) / len(grades)

 

클래스를 사용하는 방법은 간단하다.

book = SimpleGradebook()

book.add_student(‘Isaac Newton’)

book.report_grade(‘Isaac Newton’, 90)

# ...

print(book.average_grade(‘Isaac Newton’))

 

>>>

90.0

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.