대출과 관련한 변수와 함수를 모두 Loan 클래스에 넣어 속성과 메서드로 만들었습니다. 이렇게 클래스를 정의하면 인스턴스 속성값을 바꿔 조건별 객체를 만들 수 있습니다. 여기서는 각 객체를 case1, case2, case3로 이름 붙였습니다. case1의 총 상환 금액을 알려면 case1 객체에서 total_repay() 메서드를 호출하고, case3의 월 상환 금액을 알려면 case3 객체에서 monthly_repay() 메서드를 호출하면 됩니다.
이처럼 클래스는 속성(변수)과 메서드(함수)를 하나로 묶어 다룬다는 점이 사용자 정의 함수와 다릅니다.
클래스와 객체는 이 책에서 배우는 내용 중 가장 복잡한 부분이라 이해하기 조금 어려울 수 있습니다. 하지만 한 번 이해하고 나면 높은 수준의 프로그래밍을 할 때 유용하니 시간이 조금 걸리더라도 꼭 자신의 것으로 만들어 보세요.
1분 퀴즈
1 다음 코드를 보고 틀린 설명을 고르세요.
class Student:
def __init__(self, name, kor, eng, mat):
self.name, self.kor, self.eng, self.mat = name, kor, eng, mat
def score_avg(self):
(가)
print(self.name, '학생의 국영수 평균점수는', self.avg)
Jordy = Student((나))
① Student 클래스의 객체를 만들 때 __init__() 메서드도 동시에 실행된다.
② score_avg()가 세 과목의 평균 점수를 구하는 메서드라고 할 때, (가)에 들어갈 코드는 self.avg = (self.kor + self.eng + self.mat)/3이다.
③ Jordy가 Student 클래스의 객체일 때 Jordy의 국어 점수를 100으로 수정하려면 Jordy.kor = 100을 실행한다.
④ 이름이 ‘Jordy’고 국영수 점수가 각각 ‘56, 91, 39’인 객체를 만든다면 (나)에 들어갈 코드는 self, 'Jordy', 56, 91, 39다.
⑤ Jordy 객체의 평균 점수를 출력하려면 Jordy.score_avg()를 실행한다.