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)#繼承類新的構造方法
通過提取通用特徵和方法建立類,通過類可以創建對象,對象可擁用類的屬性和方法,當然對象也可以創建自已的專有屬性,但如何創建自已的方法呢?
這時候可以編寫子類,繼承父類,在子類裏面重寫方法和屬性,再創建對象,這時候的對象即擁有了父類的屬性和方法,也擁有了子類的方法和屬性,當調用子類對象的方法時,先在子類中查找,如果找不到,再往父類的方法中找;
對象引用的銷燬回收機制:
後期詳解