自定义的元类里,重写的__new__()函数为什么不执行
class metaclass(type):
def __new__(cls, name, this_bases, d):
print("----- in metaclass new ---”)
if __name__ == '__main__':
ppp = type.__new__(metaclass, 'temp_class', (), {})
上面这个简单的代码,主线程是创建 metaclass 元类的实例,也就是名为”temp_class” 的类,为何不会去调用 metaclass 中定义的__new__
() 方法,我对__new__()
方法的理解是创建实例时候会调用。
而如果我改为: metaclass(’temp_class’, (), {})调用,则会去调用 metaclass 的__new__()
方法。不知道这两个调用有什么区别
推荐文章: