Python 之 物件的建立和初始化只能進行一次

2021-09-23 01:55:27 字數 914 閱讀 6318

知識點:

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中處理物件的型別有乙個專門的物件,我們稱之為型別物件,如果不知道物件的型別就無法為物件開闢記憶體空間,因為占用記憶體的大小是物件的元資訊,是物件的基本資訊,這與物件所屬型別密切相關...