Python學習 物件導向 init

2021-10-23 09:39:07 字數 1770 閱讀 5946

__init__方法

class

phone()

:#魔術方法之一:__名字__()

def__init__

(self)

:print

("*****init==="

)# phone類裡面的方法:call

defcall

(self)

:print

("===price=="

)phone1 =phone(

)

輸出:

==

===init==

=

底層實現流程:

1.phone1 = phone()利用類建立物件,讀到phone()時,首先查詢phone()類。

2.利用phone類,向記憶體申請一塊和類同樣大小的空間。

3.向phone類中查詢有沒有__init__方法;若沒有,則則將新空間賦值給phone1;

4.若有,則進入__init__方法,執行相應內容,再將記憶體賦值給物件phone1。

5.__init__中的self為新建立的空間位址,也就是物件phone1。

class

phone()

:#魔術方法之一:__名字__()

def__init__

(self)

: self.brand =

"xiaomi"

self.price =

4999

# phone類裡面的方法:call

defcall

(self)

:print

("===price=="

,self.price)

phone1 =phone(

)phone1.call(

)phone2 = phone(

)phone2.price =

5999

phone2.call(

)

其中,self.brand和self.price兩句是在執行__init__方法時,在各自的物件記憶體中動態的建立了各自的屬性。

class

person()

:def

__init__

(self,name,age)

: self.name = name

self.age = age

defeat(self,food)

:print

('{}正在吃{}!'

.format

(self.name,food)

)def

run(self)

:print

('{},今年{}歲了!'

.format

(self.name,self.age)

)p1 = person(

'小花',18

)p1.eat(

'肉夾饃'

)p1.run(

)p2 = person(

'小驢',17

)p2.eat(

'漢堡包'

)p2.run(

)

小花正在吃肉夾饃!

小花,今年18歲了!

小驢正在吃漢堡包!

小驢,今年17歲了!

可以為方法指定引數,那麼不同的物件就有不同的屬性和方法。引數需要呼叫時動態傳入。

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python學習 物件導向

繼承 從已經有的類建立新類的過程,提供繼承資訊的叫父類 超類 基類 得到繼承資訊的叫子類 派生類 繼承是實現 復用的方式,繼承關係是一種is a關係。a student is a person.a teacher is a person.class person 定義人類 屬性name 名字 屬性n...

python物件導向學習

1.物件 物件是資料和功能 函式 的集合體 2.類 類是具有共同屬性 資料 函式 的物件的總稱 注 先定義類後例項化物件 3.屬性訪問 可以通過 dict 訪問屬性的值 4.屬性查詢和方法繫結 物件的命名空間裡只存放著物件獨有的屬性,而物件們相似的屬性是存放於類中的。物件在訪問屬性時,會優先從物件本...