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

2025. 3. 17. 11:04·Python

 

 

 

📚 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)의 기반을 탄탄히 다질 수 있습니다. 이를 통해 유지보수성과 재사용성을 높일 수 있어요!

'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
'Python' 카테고리의 다른 글
  • PYTHON - 클래스 고급 (Chapter 8-45. 인스턴스와 특수 메소드)
  • PYTHON - 클래스 고급(Chapter 8-44. 생성자와 메소드)
  • PYTHON - 특강노트 (2025-03-14)
  • PYTHON - 예외처리와 모듈 (Chapter 7-41. 패키지)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (777) N
      • Python (32)
      • 프로젝트 (101) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    urbantrends
    gpterror
    RM
    newpoliticalparty
    trumpmuskclash
    btsreunion
    classaction
    americanlaw
    btsdischarge
    lawsuitculture
    btsjungkook
    chinanightlife
    뷔
    global politics
    smartphonedurability
    titaniumcase
    life reflection
    bts
    americaparty
    hotcoffeecase
    basalcellcarcinoma
    btscomeback
    youngprofessionals
    livebroadcast
    travel ban
    chatgpterror
    self-growth
    homebartrend
    remittance
    college reunions
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
PYTHON - 클래스 고급 (Chapter 8-43. 객체와 클래스 선언하기)
상단으로

티스토리툴바