Python的魔法方法

Python的魔法方法是由雙下劃線包圍 的,魔法方法的魔力在於他們總是能在適當的時候被調用。最基本的魔法方法:__init__(),通常把__init__()方法稱爲構造方法

 

1.__init__(self[,..]):方法的魔力在於只要實例化一個對象,這個方法就會在對象創建的時候被調用

示例:

注意:__init__()方法的返回值一定是None,不能是其他

 

2.__new__(cls[,...])方法:

__new__()纔是在一個對象實例化的時候所調用的第一個方法,它跟其他魔法方法不同,它的第一個參數不是self,而是這個類(cls),而其它的參數會直接傳遞給__init__()方法

__new__()需要返回一個實例化對象,通常是cls這個類實例化的對象,當然也可以返回其它對象,

__new__()方法很少去重寫它,但是有一種情況需要重寫它,就是繼承一個不可變類型的時候,它的特性顯得尤爲重要了。

示例:

總結:

__init__是當實例對象創建完成後被調用的,然後設置對象屬性的一些初始值。

__new__是在實例創建之前被調用的,因爲它的任務就是創建實例然後返回該實例,是個靜態方法。

也就是,__new__在__init__之前被調用,__new__的返回值(實例)將傳遞給__init__方法的第一個參數,然後__init__給這個實例設置一些參數。
 

3.__del__(self):當對象要被銷燬的時候調用,並非del x就相當於自動調用x.__del__(self),__del__()方法是垃圾回收機制回收這個對象的時候被調用

示例:

 

 

 

 

發佈了71 篇原創文章 · 獲贊 32 · 訪問量 3787
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章