2023. 8. 12. 12:58
파이썬
728x90
반응형
아래 코드는 여러 학생들의 성적을 관리할 수 있는 클래스이다. 리스트와 딕셔너리를 사용하여 Grades 클래스의 인스턴스들을 구현하였다. 리스트는 수업의 학생들을 관리하고 딕셔너리는 각 학생들의 일련번호를 성적에 연결하고 있다.
getGrades는 한 학생의 성적 리스트를 복사해서 반환하고, getStudents는 학생 리스트를 복사해서 반환하고 있다.
# Grades 클래스
def Grades(object):
def __init__(self):
self.students = []
self.grades = {}
self.isSorted = True
def addStudent(self, student):
if student in self.students:
raise ValueError('Duplicate student')
self.students.append(student)
self.grades[student.getIdNum()] = []
self.isSorted = False
def addGrade(self, student, grade):
try:
self.grade[student.getIdNum()].append(grade)
except:
raise ValueError('Student not in mapping')
def getGrades(self, student):
try:
return self.grades[student.getIdNum()][:]
except:
raise ValueError('Student not in mapping')
def getStudents(self):
if not self.isSorted:
self.students.sort()
self.isSorted = True
return self.students[:]
isSorted의 인스턴스 변수는 학생 리스트에서 새로운 학생들이 추가되고 난 이후에 정렬되었는지 아닌지를 알기 위해서 사용된다. 이것을 통해 getStudents가 이미 정렬된 리스트를 또 다시 정렬하지 않도록 도와준다.
728x90
반응형
'파이썬' 카테고리의 다른 글
(파이썬) 점근 표기법 (0) | 2023.08.16 |
---|---|
(파이썬) 대출 금액 계산 프로그램 (0) | 2023.08.12 |
(파이썬) 상속/Inheritance (0) | 2023.08.09 |
(파이썬) Person 클래스 (0) | 2023.08.09 |
(파이썬) 추상 데이터 타입과 클래스 (0) | 2023.08.07 |