08-1 클래스의 기본
C를 제외한 모든 프로그래밍 언어는 객체지향 프로그래밍 언어.
클래스 기반의 객체지향 프로그래밍 언어는 클래스를 기반으로 객체를 만들고 객체를 우선 생각해서 프로그래밍한다.
클래스는 클래스 이름과 같은 함수 (생성자)를 사용해서 객체를 만든다.
class Student:
def __init__(self, name, korean, math, english):
self.name = name
self.korean = korean
self.math = math
self.english = english
def get_sum(self):
return self.korean + self.math + self.english
def get_average(self):
return (self.korean + self.math + self.english) / 3
def __str__(self):
return f"{self.name} 이름은 {self.name}입니다. 수업은 {self.korean}점, {self.math}점, {self.english}점입니다."
def __del__(self):
print(f"{self.name} 객체가 소멸되었습니다." )
students = [
Student("Alice", 85, 90, 88),
Student("Bob", 78, 82, 80),
Student("Charlie", 92, 88, 95)
]
for student in students:
print(student.__str__())

08-2 클래스의 추가적인 구문
클래스를 사용하는 것은 작정하고 속성과 기능을 가진 객체를 만들겠다는 의미이다.
파이썬은 그에 따른 부가적인 기능을 지원하며, 상속, 어떤 클래스기반인지 확인하는 isinstance(), 기본적으로 제공하는 str() 가 있다 .
isinstance() bool로 반환된다.

isinstance()는 리스트 내부에 여러 종류의 인스턴스가 들어있을때 인스턴스를 구분하며 속성과 기능을 사용할때 유용하다.

class Student:
def study(self):
print("공부를 합니다.")
class Teacher:
def teach(self):
print("강의를 줍니다.")
classroom = [Student(), Teacher(), Student()]
for person in classroom:
if isinstance(person, Student):
person.study()
elif isinstance(person, Teacher):
person.teach()
클래스 함수
클래스가 가진 함수를 클래스 함수라고 부른다. 사용에는 큰 차이가 없고 클래스가 가진 기능이라고 명시적으로 나타내는 용도이며
@classmethod 이 부분을 데코레이터 라고 부른다.

상속, 누가 만들어 놓은 기본 형태에 내가 원하는 것만 추가하거나 교체하는것.
다중산속 누군가가 만들어놓은 형태들을 조립해서 내가 원하는것을 만드는것.

class 클래스이름(Exception) 예외클래스 만들기

class CustomException(Exception):
def __init__(self):
super().__init__("예외가 발생했습니다.")
raise CustomException()'Personal > Book' 카테고리의 다른 글
| 이것이 MySQL이다 - part02_MySQL 기본 (0) | 2026.05.30 |
|---|---|
| 혼자 공부하는 파이썬 - Chapter 07 모듈 (0) | 2026.05.26 |
| 이것이 MySQL이다 - part02_MySQL 기본 (0) | 2026.05.23 |
| 혼자 공부하는 파이썬 - Chapter 06 예외 처리 (0) | 2026.05.21 |
| 혼자 공부하는 파이썬 - Chapter 05 함수 (0) | 2026.05.21 |