class A(): # 解释器运行到此处,发现class关键字,调用type函数,创建类A
def __new__(cls,v):
return super().__new__(cls)
def __init__(self,v):
self.v=v
a=A('gg') # 首先调用__new__方法,通过object父类,创建了类A的一个实例对象,然后调用__init__方法对该实例对象初始化
print(a.v) # 打印出‘gg’
class BaseClass(type): def __new__(cls, *args, **kwargs): print("in BaseClass") return super().__new__(cls, *args, **kwargs) class User(metaclass=BaseClass):
# 发现class关键字,调用User的元类BaseClass的__new__方法创建User类,打印出‘in BaseClass’ def __init__(self, name): self.name = name