4. 클래스와 객체 지향
2024년 12월 17일1분 미만
4. 클래스와 객체 지향
4.1 클래스의 기본 구조
- 클래스 정의와 객체 생성.
__init__
메서드로 초기화.- 클래스 변수와 인스턴스 변수:
- 클래스 변수는 모든 인스턴스에 공유.
- 인스턴스 변수는 각 객체마다 별도로 저장.
4.2 메서드의 종류
- 인스턴스 메서드:
self
를 통해 객체 데이터를 조작.- 예제와 실습: 간단한 계산기 클래스.
- 클래스 메서드:
@classmethod
데코레이터.- 첫 번째 인자로
cls
를 받아 클래스 데이터를 조작. - 클래스 생성 및 팩토리 메서드로 활용.
- 정적 메서드 (Static Method):
@staticmethod
데코레이터.self
나cls
를 받지 않으며, 독립적으로 동작.- 유틸리티 함수 작성에 사용.
- Static Method Docs
4.3 속성과 메타프로그래밍
- 속성 접근 제어:
@property
와setter
를 사용한 속성 캡슐화.- 읽기 전용 속성과 속성 유효성 검사.
- 동적 속성:
getattr()
,setattr()
,delattr()
로 속성 조작.dir()
로 객체의 모든 속성 확인.- Dynamic Attribute Docs
4.4 클래스와 객체 비교
- 클래스 객체와 인스턴스 객체의 차이.
- 클래스의
__dict__
와 인스턴스의__dict__
탐구.
4.5 메타클래스
- 메타클래스의 개념:
- 클래스의 클래스.
type()
을 활용한 동적 클래스 생성.
- 커스텀 메타클래스 작성:
__new__
와__init__
메서드를 활용.- 클래스 생성 과정 제어.
- 활용 사례:
- 동적 속성 추가 및 유효성 검사.