面向對象高級用法

__del__

  析構方法(析構函數(destructor) 與構造函數相反,當對象結束其生命週期,如對象所在的函數已調用完畢時,系統自動執行析構函數。析構函數每每用來作「清理善後」 的工做(例如在創建對象時用new開闢了一片內存空間,delete會自動調用析構函數後釋放內存)),當對象在內存中被釋放時,自動觸發執行。python

  注:若是產生的對象僅僅只是python程序級別的(用戶級),那麼無需定義__del__,若是產生的對象的同時還會向操做系統發起系統調用,即一個對象有用戶級與內核級兩種資源,好比(打開一個文件,建立一個數據庫連接),則必須在清除對象的同時回收系統資源,這就用到了__del__。數據庫

import time
class Foll:

    def __del__(self):
        print("清理尾巴工做開始")
        
f = Foll()
print("程序還在運行呢.....")
time.sleep(2)
print("程序運行結束了.....").

# 應用場景、例如打開了文件,在程序結束時關閉文件。
del

hasattr()

判斷對象是否包含對應的屬性和方法,返回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
hasattr

getattr()

通常用來經過字符串查找對象對應的方法和屬性。函數

getattr(object, name, [default])
# object -- 對象。
# name -- 字符串,對象屬性。
# default -- 默認返回值,若是不提供該參數,在沒有對應屬性時,將觸發 AttributeError。
getattr

 

 

更新中...............spa

相關文章
相關標籤/搜索