Python高阶 -- 元类


类和类型

  type:元类,Python3中所有的类都是通过type来创建出来的

  object:顶层的基类,Python3 中所有类的顶级父类都是object

利用元类直接创建类

  1、使用type创建类,type创建类需要三个参数,type(name,bases,dict):

    -- 第一个参数:类名  --> str

    -- 第二个参数:继承的父类   ---> tuple类型,元组中只有一个元素要加逗号(obj, )

    -- 第三个参数:方法和属性  ---> 字典类型,键值对的形式表示属性,或者对应的方法

   

   

自定义元类必须继承于type

一个类里使用参数metaclass,说明是指定调用了哪个元类

使用元类来创建一个orm模型

  1、使用描述器类,定义数据库字段值输入的要求

  2、自定义元类来创建模型类

  3、创建类使用参数metaclass,调用自定义的元类,实现数据库表名与字段的关联

    ps:字典遍历的时候,不允许对其添加元素或者修改元素,否则需要先转换成list类型

ORM模型的实现思路

  1、类对应表,创建类的时候需要自动生成对应的数据表

  2、对象对应一条数据,创建一个对象,需要在数据表中添加一条数据

  3、属性对应字段,修改对象属性的同时需要修改数据库中对应的字段

实现步骤:

  1、定义字段型类

  2、定义模型类,由于类对应数据表,那么定义模型类的时候应当在数据库中创建对应的数据表

  3、创建对象,往数据库中添加数据