第三十二章、元类

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 语句创建类

特点:

  1. 适用于大多数场景。特点是常用且直观。
  2. 默认使用元类 type 创建类。
  3. 支持继承、方法定义、属性初始化等标准特性。

创建类的三种方式:

  1. 用 class 语句来创建新的类。最常用的创建方式。
  2. 用 type 函数来直接创建新的类。用于需要动态生成类的场景。
  3. 用 继承 type 类来创建自定义元类,再由此元类创建类。用于框架定制等功能。