物件導向高階用法

2022-04-07 16:39:09 字數 1235 閱讀 8669

析構方法(析構函式(destructor) 與建構函式相反,當物件結束其生命週期,如物件所在的函式已呼叫完畢時,系統自動執行析構函式。析構函式往往用來做「清理善後」 的工作(例如在建立物件時用new開闢了一片記憶體空間,delete會自動呼叫析構函式後釋放記憶體)),當物件在記憶體中被釋放時,自動觸發執行。

注:如果產生的物件僅僅只是python程式級別的(使用者級),那麼無需定義__del__,如果產生的物件的同時還會向作業系統發起系統呼叫,即乙個物件有使用者級與核心級兩種資源,比如(開啟乙個檔案,建立乙個資料庫鏈結),則必須在清除物件的同時**系統資源,這就用到了__del__。

import

time

class

foll:

def__del__

(self):

print("

清理尾巴工作開始")

f =foll()

print("

程式還在執行呢.....")

time.sleep(2)

print("

程式執行結束了.....").

#應用場景、例如開啟了檔案,在程式結束時關閉檔案。

del判斷物件是否包含對應的屬性和方法,返回true、false。

class

a(object):

def__init__

(self, a, b, c):

self.a =a

self.b =b

self.c =c

defabc(self):

pass

a = a("

a", "

b", 'c'

)print(hasattr(a, '

a')) #

true

print(hasattr(a, '

abc')) #

truprint(hasattr(a, '

as')) #

false

hasattr

一般用來通過字串查詢物件對應的方法和屬性。

getattr(object, name, [default])

#object -- 物件。

#name -- 字串,物件屬性。

#default -- 預設返回值,如果不提供該引數,在沒有對應屬性時,將觸發 attributeerror。

getattr

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

物件導向 高階

json方式的物件導向 json 把方法包在json裡 json物件導向 有人管他叫 命名空間 在公司裡 把同一類 的方法包在一起 拖拽和繼承 物件導向的拖拽 改寫原有的拖拽 繼承 asdf 拖拽 instanceof 檢視物件是某個類的例項 使用繼承 限制範圍的拖拽類 建構函式的偽裝 屬性的繼承 ...

物件導向高階

public class person public void print public class student extends person 重寫了父類方法 public void print public class demo public class demo 1.不能new這個類,只能靠...

物件導向高階

私有屬性,不能被子類繼承,在屬性的前面加上 就變為了私有屬性 私有方法,不能被子類繼承,在方法的前面加上 就變為了私有方法 只在前面加,後面不加,一般前後都有 的,屬於類當中自帶的方法或屬性 class class test1 str1 a 私有屬性 def init self pass def m...