请问各位下面两个程序为什么会得出这样的输出?原理是什么样的?
一:
class A:
def __new__(self):
print("Anew")
def __init__(self):
print("Ainit")
class B:
def __new__(self):
print("Bnew")
def __init__(self):
print("Binit")
b = B()
a = A()
二:
class A:
def __new__(self):
self.__init__(self)
print("Anew")
def __init__(self):
print("Ainit")
class B:
def __new__(self):
self.__init__(self)
print("Bnew")
def __init__(self):
print("Binit")
b = B()
a = A()
第二个你在new函数里先调用了init,自然会先输出init,然后输出new了