知識點:
1.建立物件的過程:
1.呼叫 類的 __new__(cls)方法
2.自動呼叫 __init__(self)方法
3.返回物件的引用
2.使物件只建立一次: 用類屬性儲存第一次建立物件的位址,當再次建立物件時,進行判斷過濾掉
3..使物件只初始化一次:用類屬性設立flag 只允許初始化一次。
4.print(id(a)) a為類或者物件 列印結果為類或者物件的位址。
class a(object):
__instance = none
__init_flag = false
def __new__(cls,name):
if cls.__instance == none:
cls.__instance = object.__new__(cls)
return cls.__instance
else:
return cls.__instance
def __init__(self,name):
if self.__init_flag == false:
self.name = name
self.__init_flag = true
else:
pass
def __str__(self):
return "id:%s,name:%s"%(id(self),self.name)
a1 = a("a")
print(a1)
a2 = a("b")
print(a2)
結果如下:
建立和初始化物件
類載入,同時初始化類中靜態的屬性 執行靜態 塊 分配記憶體空間,同時初始化非靜態的屬性 賦預設值,0 false null 呼叫student的父類構造器 對student中的屬性進行顯示賦值 如果有的話 執行匿名 塊 執行構造器 返回記憶體位址 注 子類中非靜態屬性的顯示賦值是在父類構造器執行完之...
物件的建立和初始化
三 構造器 本文主要講解類和物件的關係,以及如何建立和初始化物件,對構造器的詳解 1.首先建立乙個類,我這裡建立的是乙個學生類,裡面有學生的姓名 年齡。public class student public static void main string args 發現即使類中內容是空的,在主方法中...
python原始碼學習 之 物件建立和物件的行為
在將物件的建立和行為之前,我們先來看一下型別物件,python是弱型別語言,但並不代表python沒有型別,python中處理物件的型別有乙個專門的物件,我們稱之為型別物件,如果不知道物件的型別就無法為物件開闢記憶體空間,因為占用記憶體的大小是物件的元資訊,是物件的基本資訊,這與物件所屬型別密切相關...