Python Custom metaclass

type 외에도 우리는 우리가 원하는 메타클래스를 만들 수도 있다
__metaclass__
Foo 클래스를 만들기 위해 해당 메타클래스를 사용합니다. 발견하지 못한 경우에는 클래스를 만들기 위해 type을 사용
우리가 보통 메타클래스를 introspection, manipulating, inheritance, __dict__와 같은 변수 등을 사용하여 복잡한 무언가를 만드는 데 사용
metaclass 속성은 상속되지 않는다는 점
현재 컨텍스트와 알맞는 클래스를 만들기 위해 API와 같은 곳에 커스텀 메타클래스를 사용
metaclass callable 하기만 하면 댐
메타클래스를 이용하면 다음 일들이 쉬워집니다:
  • 클래스 생성 가로채기(intercept)
  • 클래스 수정하기(modify)
  • 수정된 클래스 반환하기
API 개발에 많이 사용가능
 
 

function style

__metaclass__
 
 

class style

type.__new__
 
 
 
 
 
 

Recommendations