一. 前提:
python中一切都是对象,要么是类的对象,要么是元类的对象,type元类是自己的对象。继承层次表示为type(元类)-->类(内置和用户自定义的) --> 类的实例。
二. 目的:
创建类时自动改变类,换句话说就是创建类这种东西的东西。
三. __metaclass__
可以通过指定__metaclass__来使用用户自定义的元类创建类。
class语句解析顺序:
class Myclass(object): pass
Myclass里面的__metaclass__ --> 父类(object)中的__metaclass__ -->模块里的--> 默认的type
四. 使用方法:
1.__metaclass__ = callablefunc
1 def callablefunc(classname, bases, dct): 2 ... 3 数据处理 4 ... 5 return type(classname, bases, newdct)
2 __metaclass__ = 自定义元类
1 class MyMeta(type): 2 def __new__(cls, classname, bases, dct): 3 ... 4 对dct进行数据处理,产生newdct 5 ... 6 return super(MyMeta,cls).__new__(cls,classname,bases,newdct)
时间: 2024-10-10 00:06:37