当前位置 博文首页 > Python自定义元类的实例讲解

    Python自定义元类的实例讲解

    作者:小妮浅浅 时间:2021-05-09 18:21

    1、说明

    一个类没有声明自己的元类,默认他的元类就是type,除了使用元类type,用户也可以通过继承type来自定义元类。

    2、实例

    我们可以使用类属性 __metaclass__ 把一个类的创建过程,转交给其它地方。

    class A(object):
    
      __metaclass__ = ... # 这个类的创建转交给其他地方
    
      pass

    先定义了类 A,然后定义了一个类属性 __metaclass__,这个属性表示创建类 A 的过程,转交给其它地方处理。

    类属性 __metaclass__ 可以是一个方法,也可以是一个类。

    内容扩展:

    用元类创建类

    前面讲到过,type 有一个作用是用于检查对象的类型,其实它还有另外一个作用就是作为元类动态地创建类(对象)。

    >>> Person = type("Person", (), {"live":True})
    >>> Person
    <class '__main__.Person'>

    Person 就是一个类,它等价于:

    >>> class Person:
    ... live = True
    ...
    >>> Person
    <class '__main__.Person'>

    用元类 type 创建类的语法是:

    type(类名,基类元组(可以为空), 属性字典)

    js