一、元类是什么?
定义理解:
- Python中一切皆为对象,对象是有类实例化生成;
- 类也是对象(类对象),生成类对象的类可称之为元类;
- 所以,元类就是来创建类对象的,可称之为类工厂;
- type是python内建元类,type是最上层的元类,也可称为一切类对象的元类;
常见对象如str, int等,其__class__属性都是type,class 的__class__ 也是type。
type也可动态创建类

二、元类设置
metaclass 属性
在声明一个类时可以使用 metaclass
class Foo(object):
__metaclass__ = something ...
pass
三、查找机制

查找机制:
- 元类信息一般存放在__metaclass__属性中,元类依次向上查询,直到找到结束;
- 类的创建时,一般先查找资深元类指向;
- 若自身无元类信息,则向上查询继承的父类;
- 父类没有元类信息,则继续查询模块中元类信息;
- 若直至当前模块都无元类定义信息,则默认使用***type***作为元类。
四、抽象类示例
抽象类的创建;依赖abc模块,两种方式:
-
指定元类(metaclass)

-
继承抽象类(ABC)
from abc import ABC class Foo(ABC): pass
ABCMeta元类定义

本文详细介绍了Python中的元类,元类是用于创建类的对象的类,type是所有类的元类。元类可以通过__metaclass__属性设置,并遵循特定的查找机制。此外,还展示了如何创建抽象类,包括通过指定元类和继承抽象基类(ABC)两种方式。元类在Python编程中提供了一种高级的定制类行为的手段。
11万+

被折叠的 条评论
为什么被折叠?



