* 이 포스팅은 인프런의 "파이썬 고급 (필수문법+오픈소스 패키지 배포)" 강의를 듣고 공부한 포스팅임
1. Meta class
모든 클래스를 칭함
클래스를 생성하는 과정에서 커스텀하는 과정의 역할을 수행함 (프레임워크 작성 시 필수)
동적 생성 type : 모든 클래스의 원형이며 커스텀 생성 함수임.
검증에 자주 사용됨 (엄격하게 class 생성 과정에 영향을 받음)
2. type 동적 클래스 생성
type( name, bases(상속을 받을 클래스), dict(인스턴스 메소드, 필드 등 값 전달) ) -> 클래스가 생성됨
3. 메타클래스 상속
metaclass 속성 사용하여 커스텀 메타 클래스를 생성함.
- 타입 상속
__new__() : 클래스 인스턴스를 생성함 - 초기화
__init__() : 인스턴스 생성 시 초기화됨 - 호출
__call__() : 인스턴스를 객체함수 호출 방식으로 부를 때 호출됨
해당 함수를 거치는 과정에서 가로채기, 수정, 개선 및 반환이 가능함
4. Descriptor
low-level에서 다루어지는 로직
getter, setter의 확장판.
객체에서 서로 다른 객체를 속성값으로 가짐
- __get__(self, obj) : 인스턴스의 속성 반환
- __set__(self, obj, name) : 인스턴스의 속성을 인자값으로 변환
- __delete__(self, obj) : 인스턴스의 속성 지움
- Property : highlevel에서 로직이 이루어짐
get, set, del을 가지는 클래스에 적용될 필드에 property 메소드를 생성 후 해당 인스턴스를 쓰면 됨.
인스턴스 사용 시, 재사용에 용이함
'Python' 카테고리의 다른 글
[ Python : 동시성과 병렬성 문법 배우기 ] 2. Parallelism with Multiprocessing (0) | 2021.08.01 |
---|---|
[ Python : 동시성과 병렬성 문법 배우기 ] 1. Multithreading (0) | 2021.08.01 |
[Python 고급] 1. variable scope, context Manager (0) | 2021.07.31 |
[Python 중급] 2. 파이썬 병행성 (0) | 2021.07.31 |
[Python 중급] 1. 파이썬 클래스, 시퀸스, 일급함수 (0) | 2021.07.31 |