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

参考:http://www.langzi.fun/元类编程.html

posted @ 2019-10-10 17:10  小夏02  阅读(82)  评论(0)    收藏  举报