第三十二章、元类
1. 元类
什么是元类
元类是创建类的类。在 Python 中一切皆是对象,类也是对象,而创建类的类就是元类。
任何对象的 __class__
特殊属性都绑定创建此对象的类。类也是如此。
示例:
# 元类 示例
class Dog:
pass
dog1 = Dog()
print(dog1)
print(dog1.__class__) # dog1绑定的对象的类是 Dog
print(Dog.__class__) # Dog类的类是 type
print(type.__class__) # type 类的类还是 type
运行结果
<__main__.Dog object at 0x106b02e40>
<class '__main__.Dog'>
<class 'type'>
<class 'type'>
class 语句创建类
特点:
- 适用于大多数场景。特点是常用且直观。
- 默认使用元类 type 创建类。
- 支持继承、方法定义、属性初始化等标准特性。
创建类的三种方式:
- 用 class 语句来创建新的类。最常用的创建方式。
- 用 type 函数来直接创建新的类。用于需要动态生成类的场景。
- 用 继承 type 类来创建自定义元类,再由此元类创建类。用于框架定制等功能。