元类

是类的类,是类的模板,元类的主要目的是为了控制类的创建行为。

type是Python的一个内建元类,用来直接控制生成类,在python当中任何class定义的类其实都是type类实例化的结果。

自定义元类 

继承了type类的自定义类,称为自定义元类。未继承type类的自定义类,就是一个普通的自定义类。

类由三大组成 

1、类名class_name
2、继承关系class_bases
3、类的名称空间class_dict 

创建一个类的方式 

1:使用class关键字(python解释器转化为第二种)
2:通过type关键字,依次传入以上三个参数即可

__new__

__new__ 是在新式类中出现的方法,它作用在构造函数之前。在__init__启动之前,__new__决定是否要使用该__init__方法,因为__new__可以调用其他类的构造方法或者直接返回别的对象作为本类的实例。

__new__先与 __init__ 方法执行。

通常来讲,新式类开始实例化时,__new__方法会返回cls(cls代指当前类)的实例,然后该类的__init__方法作为构造方法会接收这个实例(self)作为自己的一个参数,然后依次传入__new__方法中接收的位置参数和命名参数。

__init__

创建对象时完成初始化,负责将类实例化

__call__ 

实例自身的调用