
📚 Chapter 8-43. 객체와 클래스 선언하기
1️⃣ 객체란 무엇인가?
- 객체(Object) : 구현하고자 하는 대상의 속성과 기능을 가지는 프로그램 단위입니다.
✅ 예시: 사람을 객체로 만들기
- 속성: 눈, 코, 입, 키, 몸무게, 성격 등
- 기능: 걷기, 말하기, 물건을 잡기
💡 객체를 만들기 위해서는 속성과 기능이 필요합니다.
하지만 현실 세계의 많은 대상은 다양한 속성과 기능을 가집니다. 그래서 필요한 속성만을 이용해 객체를 표현하는 개념이 추상화입니다.
✅ 예시: 개발 공부를 하는 수강생을 객체로 만들기
- 속성: 이름, Python 활용 능력, Database 활용 능력, Django 활용 능력, AWS 활용 능력
- 기능:
- 수강 과목별 능력 평균 구하기
- 수강 과목별 총점 구하기
🔥 Python 예제 코드
# 학생들의 능력 점수를 저장하는 리스트
oz_students = [
{"name": "백현우", "python": 4, "database": 3, "Django": 3, "AWS": 2},
{"name": "홍혜인", "python": 4, "database": 5, "Django": 2, "AWS": 4},
{"name": "윤은성", "python": 3, "database": 4, "Django": 4, "AWS": 1},
{"name": "홍수철", "python": 2, "database": 3, "Django": 1, "AWS": 5},
]
print("이름", "총점", "평균", sep="\t")
for student in oz_students:
ability_sum = student["python"] + student["database"] + student["Django"] + student["AWS"]
ability_average = ability_sum / 4
print(student["name"], ability_sum, ability_average, sep="\t")
📋 출력 결과
이름 총점 평균
백현우 12 3.0
홍혜인 15 3.75
윤은성 12 3.0
홍수철 11 2.75
2️⃣ 함수로 객체 사용하기
✅ Python 예제 코드
def create_oz_students(name, python, database, django, AWS):
return {
"name": name,
"python": python,
"database": database,
"Django": django,
"AWS": AWS
}
def get_sum(student):
return student["python"] + student["database"] + student["Django"] + student["AWS"]
def get_average(student):
return get_sum(student) / 4
def to_string(student):
return f'{student["name"]}\t{get_sum(student)}\t{get_average(student)}'
oz_students = [
create_oz_students("백현우", 4, 3, 3, 2),
create_oz_students("홍혜인", 4, 5, 2, 4),
create_oz_students("윤은성", 3, 4, 4, 1),
create_oz_students("홍수철", 2, 3, 1, 5)
]
print("이름", "총점", "평균", sep="\t")
for student in oz_students:
print(to_string(student))
📋 출력 결과
이름 총점 평균
백현우 12 3.0
홍혜인 15 3.75
윤은성 12 3.0
홍수철 11 2.75
3️⃣ 클래스 선언하기
- 클래스 이름의 첫 글자는 대문자로 작성합니다.
✅ 클래스 선언 구조
class 클래스이름:
클래스 내용
✅ 예시 코드
class CreateOzStudent:
pass
# 인스턴스 생성
student = CreateOzStudent()
💡 클래스와 인스턴스
- 클래스: 객체를 생성하기 위한 템플릿.
- 인스턴스: 클래스에서 실제로 생성된 객체.
- 생성자 함수: 클래스 이름을 함수처럼 사용하여 객체를 생성.
✅ 이해도 체크리스트
- 객체란 무엇인가요?
- 구현하고자 하는 대상의 속성과 기능을 가지는 프로그램 단위입니다.
- 객체를 구성하는 속성과 기능은 무엇인가요?
- 속성은 데이터, 기능은 동작을 나타냅니다.
- 추상화란 무엇인가요?
- 필요한 속성과 기능만을 선택하여 모델링하는 과정입니다.
- 객체 지향 프로그램이란?
- 객체를 중심으로 프로그램을 설계하고 구현하는 방식입니다.
- 클래스를 선언하는 방법은?
- class 클래스이름: 형태로 선언하고, 클래스 이름은 대문자로 시작합니다.
- 인스턴스란?
- 클래스를 사용하여 생성된 객체를 말합니다.
🚀 Tip! 클래스와 인스턴스를 제대로 이해하면, 객체 지향 프로그래밍(OOP)의 기반을 탄탄히 다질 수 있습니다. 이를 통해 유지보수성과 재사용성을 높일 수 있어요!
'Python' 카테고리의 다른 글
PYTHON - 클래스 고급 (Chapter 8-45. 인스턴스와 특수 메소드) (0) | 2025.03.17 |
---|---|
PYTHON - 클래스 고급(Chapter 8-44. 생성자와 메소드) (0) | 2025.03.17 |
PYTHON - 특강노트 (2025-03-14) (0) | 2025.03.14 |
PYTHON - 예외처리와 모듈 (Chapter 7-41. 패키지) (0) | 2025.03.14 |
PYTHON - 예외처리와 모듈 (Chapter 7-40. 모듈 만들기) (0) | 2025.03.14 |