
📚 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
✅ 이해도 체크리스트
- 인스턴스란 무엇인가요?
- a. 클래스에서 생성된 객체 (정답)
- b. 함수에서 생성된 객체
- c. 모듈에서 생성된 객체
- isinstance() 함수의 역할은 무엇인가요?
- a. 객체의 타입을 확인합니다.
- b. 객체가 특정 클래스의 인스턴스인지 확인합니다. (정답)
- c. 객체의 속성을 확인합니다.
- 다음 코드의 출력은 무엇인가요?
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 |