Python

PYTHON - 클래스 고급 (Chapter 8-43. 객체와 클래스 선언하기)

Chansman 2025. 3. 17. 11:04

 

 

 

📚 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()

💡 클래스와 인스턴스

  • 클래스: 객체를 생성하기 위한 템플릿.
  • 인스턴스: 클래스에서 실제로 생성된 객체.
  • 생성자 함수: 클래스 이름을 함수처럼 사용하여 객체를 생성.

✅ 이해도 체크리스트

  1. 객체란 무엇인가요?
    • 구현하고자 하는 대상의 속성과 기능을 가지는 프로그램 단위입니다.
  2. 객체를 구성하는 속성과 기능은 무엇인가요?
    • 속성은 데이터, 기능은 동작을 나타냅니다.
  3. 추상화란 무엇인가요?
    • 필요한 속성과 기능만을 선택하여 모델링하는 과정입니다.
  4. 객체 지향 프로그램이란?
    • 객체를 중심으로 프로그램을 설계하고 구현하는 방식입니다.
  5. 클래스를 선언하는 방법은?
    • class 클래스이름: 형태로 선언하고, 클래스 이름은 대문자로 시작합니다.
  6. 인스턴스란?
    • 클래스를 사용하여 생성된 객체를 말합니다.

🚀 Tip! 클래스와 인스턴스를 제대로 이해하면, 객체 지향 프로그래밍(OOP)의 기반을 탄탄히 다질 수 있습니다. 이를 통해 유지보수성과 재사용성을 높일 수 있어요!