使用元类
Python 元类(Metaclass)深入解析
动态类型与 type() 函数
Python 作为动态语言,其类和函数的定义是在运行时动态创建的。这与静态语言(如 Java、C++)有显著区别。
type() 的基本用法
type() 函数有两种主要用途:
- 查看对象的类型
- 动态创建类
动态创建类
我们可以使用 type() 动态创建类,而无需使用 class 关键字:
type() 创建类时需要三个参数:
- 类名(字符串)
- 继承的父类元组(支持多重继承)
- 包含类属性和方法的字典
元类(Metaclass)深入
什么是元类
元类是类的类,它控制类的创建行为。简单来说:
- 普通类创建实例
- 元类创建类
关系链:元类 → 类 → 实例
自定义元类
元类通常继承自 type,并以 Metaclass 结尾命名:
__new__ 方法参数:
cls:当前准备创建的类name:类名bases:父类元组attrs:类属性和方法字典
使用元类
实际应用:实现简单 ORM 框架
ORM(Object-Relational Mapping)是将数据库表映射为 Python 类的技术。
基础字段类
元类实现
基类 Model
使用示例
输出:
总结
type()是 Python 中所有类的默认元类- 元类允许我们拦截类的创建过程,实现强大的定制功能
- ORM 是元类的典型应用场景
- 元类虽然强大,但应谨慎使用,多数情况下可以通过其他更简单的方式实现需求
元类是 Python 中非常高级的特性,理解它有助于深入掌握 Python 的面向对象机制。

