1. 程式人生 > >(python)__init__與__new__的區別

(python)__init__與__new__的區別

一、
__new__是類方法,是例項化類的方法,
__init__是初始化例項引數的方法,是例項級別的方法
先呼叫new在呼叫init

二、

__new__不是一定要有的,只有繼承自object的類才有,
子類如果沒有重新定義__new__,會直接追溯至object的new方法,因為object是所有新式類的基類。
子類中如果新寫了new,可以自由選擇其他的新式類

三、

__new__必須有返回值,為例項物件
__init__沒有

四、

引數不同,__new__的引數cls是當前了類

__init__的引數self是被new出來的例項

執行後