PYTHON - 클래스 고급 (Chapter 8-45. 인스턴스와 특수 메소드)

2025. 3. 17. 13:59·Python

📚 Chapter 8-3. 인스턴스와 특수 메소드

1️⃣ 인스턴스

  • 인스턴스: 클래스에서 생성된 객체입니다.
  • isinstance() 함수는 인스턴스가 특정 클래스에서 생성되었는지 확인하는 함수입니다.

✅ isinstance() 사용 예제

class Student:
    def __init__(self):
        pass

student = Student()
print("isinstance(student, Student):", isinstance(student, Student))

📋 출력 결과

isinstance(student, Student): True

2️⃣ 인스턴스의 구분

  • 다양한 클래스에서 생성된 인스턴스가 있을 때, isinstance()로 어느 클래스에서 생성되었는지 판단할 수 있습니다.
class Python:
    def python(self):
        print("파이썬을 수강중입니다.")

class Java:
    def java(self):
        print("자바를 수강중입니다.")

programming_subjects = [Python(), Python(), Python(), Java(), Python()]

for subject in programming_subjects:
    if isinstance(subject, Python):
        subject.python()
    elif isinstance(subject, Java):
        subject.java()

📋 출력 결과

파이썬을 수강중입니다.
파이썬을 수강중입니다.
파이썬을 수강중입니다.
자바를 수강중입니다.
파이썬을 수강중입니다.

3️⃣ 특수 메서드의 사용 (__str__)

  • __str__ 메서드는 객체를 문자열로 표현할 때 사용됩니다.
class CreateOzStudents:
    def __init__(self, name, python, database, django, AWS):
        self.name = name
        self.python = python
        self.database = database
        self.Django = django
        self.AWS = AWS

    def get_sum(self):
        return self.python + self.database + self.Django + self.AWS

    def get_average(self):
        return self.get_sum() / 4

    def __str__(self):
        return f'{self.name}\t{self.get_sum()}\t{self.get_average()}'

oz_students = [
    CreateOzStudents("백현우", 4, 3, 3, 2),
    CreateOzStudents("홍해인", 4, 5, 2, 4),
    CreateOzStudents("윤은성", 3, 4, 4, 1),
    CreateOzStudents("홍수철", 2, 3, 1, 5)
]

print("이름", "총점", "평균", sep="\t")
for student in oz_students:
    print(str(student))

📋 출력 결과

이름    총점    평균
백현우  12     3.0
홍해인  15     3.75
윤은성  12     3.0
홍수철  11     2.75

✅ 이해도 체크리스트

  1. 인스턴스란 무엇인가요?
    • a. 클래스에서 생성된 객체 (정답)
    • b. 함수에서 생성된 객체
    • c. 모듈에서 생성된 객체
  2. isinstance() 함수의 역할은 무엇인가요?
    • a. 객체의 타입을 확인합니다.
    • b. 객체가 특정 클래스의 인스턴스인지 확인합니다. (정답)
    • c. 객체의 속성을 확인합니다.
  3. 다음 코드의 출력은 무엇인가요?
class Student:
    def __init__(self):
        pass

student = Student()
print("isinstance(student, Student):", isinstance(student, Student))
- a. isinstance(student, Student): False
- b. isinstance(student, Student): True (정답)
- c. isinstance(student, Student): Error

4. 다음 코드의 출력은 무엇인가요?

class Python:
    def python(self):
        print("파이썬을 수강중입니다.")

class Java:
    def java(self):
        print("자바를 수강중입니다.")

programming_subjects = [Python(), Python(), Python(), Java(), Python()]

for subject in programming_subjects:
    if isinstance(subject, Python):
        subject.python()
    elif isinstance(subject, Java):
        subject.java()
- 1. 파이썬을 수강중입니다. (5번 출력)
- 2. 자바를 수강중입니다. (5번 출력)
- 3. 파이썬을 수강중입니다. (4번 출력), 자바를 수강중입니다. (1번 출력) (정답)

5. __str__ 메서드는 어떤 역할을 하나요? - a. 객체를 문자열로 반환합니다. (정답) - b. 객체를 숫자로 반환합니다. - c. 객체를 리스트로 반환합니다.

 

'Python' 카테고리의 다른 글

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

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
PYTHON - 클래스 고급 (Chapter 8-45. 인스턴스와 특수 메소드)
상단으로

티스토리툴바