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__메서드를 활용.- 클래스 생성 과정 제어.
- 활용 사례:
- 동적 속성 추가 및 유효성 검사.
