1. 程式人生 > 實用技巧 >構造和析構

構造和析構

歡迎點選上方“藍字”關注哦!

一、__init__(self[,...]) 方法。

1,當我們的例項物件需要有明確的初始化步驟的時候,你可以在 __init__ 方法中部署初始化的程式碼。

假設定義一個矩形類。

2,如果需要對一個物件進行初始化操作的時候,就要重寫 __init__ 。

二、__new__(cls[,...]) 方法。

_new__ 是在一個物件例項化的時候所呼叫的第一個方法,它的第一個引數不是 self 而是這個類(cls),在 __init__ 方法之前被呼叫,如果後面有引數,會原封不動的傳給 __init__ 方法。

__new__ (cls[,...]) 方法需要一個例項物件作為返回值,它需要返回一個物件,通常返回 cls 這個類的例項物件,也可以返回其他類的物件。

__new__(cls[,...]) 方法平時是很少去重寫它的,一般我們 python 用預設的方案去執行就可以了。沒有去重寫,python 就會在需要的時候預設去執行它。當繼承一個不可變型別的時候,又需要去修改它的時候,那它的特性就顯得尤為重要了。

三、__del__(self) 方法。

1,是當垃圾回收機制。

2,__init__ 和 __new__ 方法是物件的構造器的話,那麼 python 也提供了一個析構器,叫做 __del__ 方法,當物件將要被銷燬的時候,這個物件就會自動被呼叫。

所有對它的引用都被 __del__ 之後才會啟動垃圾回收機制。這個垃圾回收機制去銷燬這個物件的時候,就自動呼叫 __del__ 方法。

歡迎掃碼關注!