个人理解:
1、__new__在__init__之前调用,初始化对象,再将这个对象返回给__init__初始化实例
2、__new__返回的必须是父类的__new__生成的对象。如果是其他类,则不会执行__init__,如果是自己类,则会递归报错。
测试代码:
class B(object):
def __new__(cls, *args, **kwargs):
print('__new__')
return super().__new__(cls,*args,**kwargs)
def __init__(self):
print('__init__')
if __name__=='__main__':
b = B()
输出为:
__new__
__init__
本文深入解析Python中__new__和__init__方法的作用与区别,通过示例代码演示了对象创建过程,解释了__new__如何在__init__前被调用以初始化对象并返回给__init__进行实例初始化。
4512

被折叠的 条评论
为什么被折叠?



