在python中,當使用類名()建立物件時,會自動執行以下操作:
1)為物件在記憶體中分配空間:建立物件__new__
2)為物件的屬性設定輸出值:初始化方法__init___
__new__方法:
使用類名建立物件,python的直譯器會首先呼叫__new__方法為物件分配儲存空間
__new__方法時乙個由objct基類提供的內建的靜態方法,主要作用有兩個:
1)在記憶體中為物件分配空間;
2)返回物件的引用;
python的直譯器獲得物件的引用後,將引用作為第乙個引數,傳遞給__init__方法
重寫__new__方法的非常固定:
一定要return super().new(cls)
否則python的直譯器的得不到分配了空間的物件引用,不會呼叫物件的初始化方法
__new__方法是一種給靜態方法,呼叫時需要主動傳遞cls引數
例如:…
#建立物件時,分配空間通過new方法
class test(object):
def __new__(cls, *args, **kwargs):
#1.建立兌現物件時,new方法會被自動呼叫,分配空間
print("建立物件,並分配空間")
return super().__new__(cls)
def __init__(self):
print("物件初始化")
test1 = test()
輸出結果:
建立物件,並分配空間
物件初始化
沒有return時:
#建立物件時,分配空間通過new方法
class test(object):
def __new__(cls, *args, **kwargs):
#1.建立兌現物件時,new方法會被自動呼叫,分配空間
print("建立物件,並分配空間")
#return super().__new__(cls)
def __init__(self):
print("物件初始化")
test1 = test()
輸出結果:
建立物件,並分配空間
因為沒有return,所以沒有得到了分配了空間的物件的引用 物件導向 建立物件
1.面向過程的思維方式 就是把解決問題的關注點,放到解決問題的每乙個詳細的步驟上面!物件導向的思維方式 物件導向就是一種思維方式,與 關係不大 就是把解決問題的關注點,放到解決問題需要的一系列物件身上 1 什麼是物件!萬物皆物件 2 物件的特徵 物件的特徵就是用來描述物件的相關資訊 比如乙個人物件,...
物件導向 建立物件
python中,可以根據已經定義的類去建立出乙個或多個物件。建立物件的格式為 物件名1 類名 物件名2 類名 物件名3 類名 建立物件demo class hero object 新式類定義形式 info 是乙個例項方法,類物件可以呼叫例項方法,例項方法的第乙個引數一定是self def info ...
初入物件導向程式設計
對於初學js的同學來說,當打到了物件導向的這一關卡後應該大部分人都會有這麼乙個疑問 這是個什麼玩意兒?物件本身相當於乙個看得見摸得著的東西,可物件導向卻是乙個看不見摸不著的,需要你憑空想象出來的乙個東西,而物件導向程式設計就更加複雜了。需要將所有的邏輯都想成類與物件的關係。首先我們需要有乙個清晰的概...