析構方法(析構函數(destructor) 與構造函數相反,當對象結束其生命週期,如對象所在的函數已調用完畢時,系統自動執行析構函數。析構函數每每用來作「清理善後」 的工做(例如在創建對象時用new開闢了一片內存空間,delete會自動調用析構函數後釋放內存)),當對象在內存中被釋放時,自動觸發執行。python
注:若是產生的對象僅僅只是python程序級別的(用戶級),那麼無需定義__del__,若是產生的對象的同時還會向操做系統發起系統調用,即一個對象有用戶級與內核級兩種資源,好比(打開一個文件,建立一個數據庫連接),則必須在清除對象的同時回收系統資源,這就用到了__del__。數據庫
import time class Foll: def __del__(self): print("清理尾巴工做開始") f = Foll() print("程序還在運行呢.....") time.sleep(2) print("程序運行結束了....."). # 應用場景、例如打開了文件,在程序結束時關閉文件。
判斷對象是否包含對應的屬性和方法,返回True、False。ide
class A(object): def __init__(self, a, b, c): self.a = a self.b = b self.c = c def abc(self): pass a = A("a", "b", 'c') print(hasattr(a, 'a')) # True print(hasattr(a, 'abc')) # Tru print(hasattr(a, 'as')) # False
通常用來經過字符串查找對象對應的方法和屬性。函數
getattr(object, name, [default]) # object -- 對象。 # name -- 字符串,對象屬性。 # default -- 默認返回值,若是不提供該參數,在沒有對應屬性時,將觸發 AttributeError。
更新中...............spa