(python)__init__与__new__的区别

一、
__new__是类方法,是实例化类的方法,
__init__是初始化实例参数的方法,是实例级别的方法
先调用new在调用init

二、

__new__不是一定要有的,只有继承自object的类才有,
子类如果没有重新定义__new__,会直接追溯至object的new方法,因为object是所有新式类的基类。
子类中如果新写了new,可以自由选择其他的新式类

三、

__new__必须有返回值,为实例对象
__init__没有

四、

参数不同,__new__的参数cls是当前了类

__init__的参数self是被new出来的实例

执行后

猜你喜欢

转载自blog.csdn.net/houmenghu/article/details/84629136