产生的新对象 = object.__new__(继承object类的子类)
这句话是什么意思??
元类是类的类,是类的模板
元类是用来控制如何创建类的,正如类是创建对象的模板一样,而元类的主要目的是为了控制类的创建行为
类是实例化对象的模板,元类是类的模板
类的创建过程
__new__空对象
__init__初始化属性(赋值)
空对象和初始化属性返回给实例化对象
实例化对象可以调用父类的__str__ , __call__方法
__init__
自定义属性
__new__
自定义类的创建条件
元类的new方法会创建一个类并返回,就像类的new方法会创建一个实例并返回一样。
元类,自定义元类的关系
自定义元类继承元类(type),可以重载元类(type)里的__new__,__call__,__init__
进而自定义一个新的元类,按照新定制的规则去创建一个类
自定义元类的__new__与生成的类的关系
生成的类创建一个空对象(即调用的__new__方法)
在初始化属性(即调用的__init__方法)
在(即调用的__call__)
自定义元类里的__new__处理调用models的类的属性(谁调用models就将谁的attrs即属性传给models使用的metaclass通过__new__定制属性,然后将处理结果返回给哪个调用models的类)