python物件導向 建立物件初始化 new

2021-09-29 16:31:43 字數 1210 閱讀 1853

在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的同學來說,當打到了物件導向的這一關卡後應該大部分人都會有這麼乙個疑問 這是個什麼玩意兒?物件本身相當於乙個看得見摸得著的東西,可物件導向卻是乙個看不見摸不著的,需要你憑空想象出來的乙個東西,而物件導向程式設計就更加複雜了。需要將所有的邏輯都想成類與物件的關係。首先我們需要有乙個清晰的概...