python3中類(class)的重點與難點:__new__ 與 __init__


。構造方法包括創建對象和初始化對象。

在python當中,分為兩步執行:先執行__new__方法然后執行__init__方法;

  • __new__是在實例創建之前被調用的,因為它的任務就是創建實例然后返回該實例,是個靜態方法。
  • __init__是當實例對象創建完成后被調用的,然后設置對象屬性的一些初始值。self表示實例。

 

 

 

總結:

__new__至少要有一個參數cls,代表要實例化的類,此參數在實例化時由Python解釋器自動提供

__new__必須要有返回值,返回實例化出來的實例,這點在自己實現__new__時要特別注意,可以return父類__new__出來的實例,或者直接是object的__new__出來的實例。

__init__有一個參數self,就是這個__new__返回的實例,__init____new__的基礎上可以完成一些其它初始化的動作,__init__不需要返回值

我們可以將類比作制造商,__new__方法就是前期的原材料購買環節,__init__方法就是在有原材料的基礎上,加工,初始化商品環節。這樣記就不會亂了啦。

 

最后附贈圖解:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM