본문으로 건너뛰기
Python 기초집LESSON 16

객체지향 기초: 클래스와 인스턴스

난이도입문
예상 시간30분
선수지식이전 강의

16강. 객체지향 기초: 클래스와 인스턴스

1. 이번 강의에서 해결할 문제​

딕셔너리 키를 문자열로 반복하면 오타를 실행 전 발견하기 어렵고 관련 검증이 흩어집니다. 전투 한 건의 상태와 동작을 하나의 객체로 표현합니다.

2. 학습 목표​

3. 핵심 개념​

클래스는 객체의 구조와 동작을 정의하고 인스턴스는 실제 값을 가진 개별 객체입니다. self는 메서드를 호출한 인스턴스를 가리킵니다. 클래스는 모든 데이터를 담는 그릇이 아니라 함께 변해야 하는 상태와 규칙을 묶을 때 유용합니다.

4. 단계별 코드 예시​

파일 경로: C:\dev\game-log-analyzer\battle_analyzer\models.py

battle_analyzer/models.py
class BattleRecord:
def __init__(self, player, monster, skill, damage, result):
if damage < 0:
raise ValueError("피해량은 0 이상이어야 합니다.")
self.player = player
self.monster = monster
self.skill = skill
self.damage = damage
self.result = result

def is_win(self):
return self.result == "win"

def __repr__(self):
return (
f"BattleRecord(player={self.player!r}, "
f"monster={self.monster!r}, damage={self.damage})"
)

파일 경로: C:\dev\game-log-analyzer\main.py

main.py
from battle_analyzer.models import BattleRecord

record = BattleRecord("Knight", "Slime", "Slash", 80, "win")
print(record)
print("승리:", record.is_win())
PowerShell · 실행
.\.venv\Scripts\python.exe .\main.py

5. 코드가 동작하는 이유​

클래스 호출은 새 인스턴스를 만들고 __init__이 초기 상태를 설정합니다. 메서드 호출 시 인스턴스가 self로 자동 전달됩니다. __repr__은 디버깅에서 객체 핵심 값을 확인하기 쉬운 문자열을 제공합니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

객체지향 기초: 클래스와 인스턴스 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“객체지향 기초: 클래스와 인스턴스” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2“객체지향 기초: 클래스와 인스턴스”에서 ‘클래스 속성과 인스턴스 속성 혼동’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

16강. 객체지향 기초: 클래스와 인스턴스 미완료 상태