__new__與__init__的作用

class A(object):
    def __init__(self):
        print("這是 init 方法")

    def __new__(cls):
        print("這是 new 方法")
        return object.__new__(cls)

A()

總結(jié)

  1. new至少要有一個參數(shù)cls,代表要實例化的類,此參數(shù)在實例化時由Python解釋器自動提供
  2. new必須要有返回值,返回實例化出來的實例,這點在自己實現(xiàn)new時要特別注意,可以return父類new出來的實例,或者直接是object的new出來的實例
  3. init有一個參數(shù)self,就是這個new返回的實例,initnew的基礎上可以完成一些其它初始化的動作,init不需要返回值
  4. 我們可以將類比作制造商,new方法就是前期的原材料購買環(huán)節(jié),init方法就是在有原材料的基礎上,加工,初始化商品環(huán)節(jié)

驗證

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容