Python Meta Class
[python type function](https://texonom.com/python-type-function-9310fdf7473f4a608dfe5a1564534038) 


### 메타클래스의 주 목적은 클래스가 만들어질 때 클래스를 자동으로 바꾸기

[Python Custom metaclass](https://texonom.com/python-custom-metaclass-dfb294b911b0447baec340593298d66c)

Smalltalk 언어에서 따온 매우 특별한 클래스 구성이 존재합니다
python에서 class는 객체이기도 하다
class 키워드를 사용할 때 Python은 실행하면서 객체를 생성함
python에서 클래스는 객체이고 그때그때 type function으로 동적으로 생성할 수 있다
방법은 metaclass를 사용할 때에도 동일하게 작동

메타클래스는 이러한 객체를 만드는 '무언가'
```typeMyClass = MetaClass()MyObject = MyClass()```
type 함수는 실제로 메타클래스 (클래스 팩토리)
문자열 객체를 생성하는 클래스인 str, 정수 객체를 생성하는 int 클래스와 같이 type은 클래스 객체를 생성하는 클래스
Python에서 모든 것은 객체이고, 모든 객체는 클래스의 인스턴스이거나 메타클래스의 인스턴스입니다. type을 제외하고

### python의 모든 것들은 객체고 이 모든 것들은 클래스로부터 생성
```type>>> anything.__class__.__class__<type 'type'>```




> [Python의 metaclasses(메타클래스) 이해하기](https://tech.ssut.me/understanding-python-metaclasses/)





