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

2025. 3. 17. 11:04·Python
목차
  1. 1️⃣ 객체란 무엇인가?
  2. ✅ 예시: 사람을 객체로 만들기
  3. ✅ 예시: 개발 공부를 하는 수강생을 객체로 만들기
  4. 🔥 Python 예제 코드
  5. 2️⃣ 함수로 객체 사용하기
  6. ✅ Python 예제 코드
  7. 3️⃣ 클래스 선언하기
  8. ✅ 클래스 선언 구조
  9. ✅ 예시 코드
  10. ✅ 이해도 체크리스트

 

 

 

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

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.