類的繼承機制,類的實例對象引用銷燬

class Point:
    "構造關於2維座標的類"
    
    def __init__(self,x=0,y=0):
        self.x = x
        self.y = y
    
    def __del__(self):
        class_name = self.__class__.__name__
        print(class_name,"銷燬")
        
pt1 = Point(1,3)#創建point類的實例,pt1變量值指向對象地址,引用1次
pt2 = pt1#將實例地址給到變量pt2,引用2次
pt3 = pt1#引用3次

print(id(pt1),id(pt2),id(pt3))#查看變量指向的地址

del pt1
del pt2
del pt3#刪除引用,並不是刪除對象
#print(id(pt1),id(pt2),id(pt3))#實驗下在刪除實例後是否還存在

class Point_new(Point):
    "基於2維父類構造空間3維座標的類"
    
    def __init__(self,x=0,y=0,z=0):#重寫初始化函數
        self.x = x
        self.y = y
        self.z = z

pt4 = Point_new(1,2,3)#繼承類新的構造方法

通過提取通用特徵和方法建立類,通過類可以創建對象,對象可擁用類的屬性和方法,當然對象也可以創建自已的專有屬性,但如何創建自已的方法呢?

這時候可以編寫子類,繼承父類,在子類裏面重寫方法和屬性,再創建對象,這時候的對象即擁有了父類的屬性和方法,也擁有了子類的方法和屬性,當調用子類對象的方法時,先在子類中查找,如果找不到,再往父類的方法中找;

對象引用的銷燬回收機制:
後期詳解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章