← 학습 코스

관련된 값을 한 객체에 담기

Python전체 작성형

함께 쓰는 값에 하나의 이름을 붙여요

함수와 변수를 배웠어요. 점수와 감점처럼 함께 쓰는 값을 하나의 묶음으로 다루고 싶을 때 클래스를 만들 수 있어요. 클래스는 이런 객체를 만들기 위한 정의예요. 객체는 그 정의로 실제로 만든 값의 묶음이에요.

class ScoreCard:
    pass

card = ScoreCard()
card.points = 12
card.penalty = 3

class ScoreCard:는 클래스를 정의해요. pass는 아직 할 일이 없는 빈 본문을 유효하게 두는 문장이에요. ScoreCard()를 호출하면 새 객체를 만들고 card가 그 객체를 가리켜요. card.points와 card.penalty는 그 객체에 속한 속성이에요. 그림은 두 값이 한 객체에 담긴 관계를 보여 줘요.

ScoreCard 클래스로 만든 card 객체에 points 12와 penalty 3을 속성으로 저장하는 관계

점 뒤의 이름으로 객체 값을 읽어요

같은 객체의 최종 점수는 card.points - card.penalty예요. 예제에서는 12 −3 = 9예요. 점은 객체에서 이름을 찾는 표현이에요. 리스트의 append를 쓸 때도 점으로 기능을 찾았어요.

net = card.points - card.penalty
print(net)

card의 속성을 읽어도 원래 값이 자동으로 변하지는 않아요. 새 ScoreCard()를 호출하면 별도 객체예요. 아직 속성을 설정하지 않은 객체에서 points를 읽으면 오류가 나므로 값을 저장한 뒤 사용해요. 다음 레슨에서는 새 객체를 만들 때 필요한 값을 한 번에 설정해요.

직접 풀어봐요

ScoreCard 클래스를 정의하고 card 객체에 points와 penalty를 저장해요. 최종 점수 points −penalty를 출력해요.

첫 줄 points(01000), 둘째 줄 penalty(0points)이에요. 출력은 최종 점수와 줄 바꿈이에요. 클래스·객체 생성·입력·출력을 포함한 전체 프로그램을 작성해요.

예시 1: points = 12, penalty = 3 → 9예요. 예시 2: points = 20, penalty = 7 → 13예요.

예시 입력

12
3

예상 결과

9

예시 입력

20
7

예상 결과

13
핵심 개념
  • oop-inheritance-poly: 클래스와 그 정의로 만든 객체를 구분하고, 객체의 속성에 값을 저장하고 읽어요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기