class Foo():
def __init__(self, a1):
"""
初始化方法
"""
print(1)
self.a1 = a1
def __new__(cls, *args, **kwargs):
"""
构造方法
"""
print(222)
return object.__new__(cls) #会创建一个当前类Foo 的对象, 此时对象是空的,然后马上会通过__init__方法进行初始化对象
# Foo() # 此时会打印 222 ,也就是调用__new__方法了
# f = Foo() # 此时也还会打印 222,因为 __new__没有返回值,有return,f才会去接受
f = Foo(1) # 此时会打印222 和 1