。構造方法包括創建對象和初始化對象。
在python當中,分為兩步執行:先執行__new__方法,然后執行__init__方法;
- __new__是在實例創建之前被調用的,因為它的任務就是創建實例然后返回該實例,是個靜態方法。
- __init__是當實例對象創建完成后被調用的,然后設置對象屬性的一些初始值。self表示實例。
總結:
__new__
至少要有一個參數cls,代表要實例化的類,此參數在實例化時由Python解釋器自動提供
__new__
必須要有返回值,返回實例化出來的實例,這點在自己實現__new__
時要特別注意,可以return父類__new__
出來的實例,或者直接是object的__new__
出來的實例。
__init__
有一個參數self,就是這個__new__
返回的實例,__init__
在__new__
的基礎上可以完成一些其它初始化的動作,__init__
不需要返回值
我們可以將類比作制造商,__new__
方法就是前期的原材料購買環節,__init__
方法就是在有原材料的基礎上,加工,初始化商品環節。這樣記就不會亂了啦。
最后附贈圖解: