Discuss / Python / 关于Model 的父类以及__init__ 和__new__

关于Model 的父类以及__init__ 和__new__

Topic source

雾里看虾

#1 Created at ... [Delete] [Delete and Lock User]

在Model类的定义中的这里调用了Model父类的__init__()

def __init__(self, **kw):
    super(Model, self).__init__(**kw)

这里的父类仅仅是dict类还是包括ModelMetaClass?

另外我理解是Model类定义时相当于

Model = ModelMetaClass.__new__('Model', (dict,), attrs)

不知道是否正确?

但如果在ModelMetaClass 里加入__init__()的如下定义

def __init__(self):
    pass

在创建Model 类时就会报错, 请问是什么原因造成的?

如果ModelMetaClass 类创建时相当于

ModelMetaClass = type('ModelMetaClass', (type,), attrs)

而当使用ModelMetaClass()时才会调用__init__(),那么好像就看不出来什么时候调用了ModelMetaClass的__init__()。


  • 1

Reply