Python元类
metaclass元类
概念:想要python中创建一个了类使用class关键词即可创建,并且在python中一切皆对象,类也是一个对象。你创建类的目的就是为了创建类的实例对象,然后调用这些对象,实例化的对象是被类创建的,类是被元类创建的。而type就是Python在背后用来创建所有类的元类。凡是继承type的类都是元类
作用:在创建类时定制或自动改变类。在创建类时先寻找metaclass,若没找到继续从父类找,若还没找到则从模块层次找,最后没找到就调用type创建类。
例子:
单例模式:
class meta(type):
def __new__(cls,*arg,**kwarg):
if cls.single is None:
cls.single = super().__new__(cls)
return cls.single
else:
return cls.single
class A(metaclss=meta):
pass
Django ORM:
class Book(models.Model):
class meta:
pass

浙公网安备 33010602011771号