基于我有限的Python知识,Metaclass是另一个类。在下面的例子中,我只是在构建一个元类。在这里,我重载了__new__
方法。 type.__new__()
时我的期望是在课堂宣言结束时
被称为将委托给MyMeta.__new__()
。但这从未发生过。
print('Building MetaOne')
class MyMeta(type):
def __new__(meta, classname, supers, classdict):
print('In MyMeta:', classname)
def myfunc(self):
print ('In myfunc')
此处来自MyMeta
__new__()
我看不到印刷品。
但恰恰相反,如果我现在使用MyMeta
类作为另一个类的元类,如:
print('Building Another class')
class Super(metaclass = MyMeta):
def myfunc(self):
print ('In Super myfunc')
在本课程结束时,我看到MyMeta的__new__
被调用。
有人可以帮我理解为什么会这样吗?