面向物件【day07】:類的例項化過程剖析(三)
阿新 • • 發佈:2018-11-02
本節內容
1、概述
2、類的語法
3、總結
一、概述
之前我們說關於python中的類,都一臉懵逼,都想說,類這麼牛逼到底是什麼,什麼才是類?下面我們就來講講,什麼是類?它具有哪些特性。
二、類的語法
2.1 語法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class
dog(
object
):
#用class定義類
"dog class"
#對類的說明
def
__init__(
self
,name):
#建構函式或者是構造方法,也可以叫初始化方法
self
.name
=
name
def
sayhi(
self
):
#類方法
"sayhi funcation"
#對類方法的說明
print
(
"hello,i am a dog,my name is "
,
self
.name)
d
=
dog(
"alex"
)
#定義一個d的物件,叫例項
d.sayhi()
#呼叫例項的方法
|
2.2 self關鍵字
有很多小夥伴不禁的疑問,這個self是什麼鬼?為什麼在執行sayhi函式時,上面的self.name可以在函式中被呼叫?如下圖:
其實self 這個關鍵字相當於例項化物件本身(self相當於d),在例項化過程中,把自己傳進去了,我們隊上面的兩行做一下解釋:
2.3 函式__init__()
在類中__init__()函式叫建構函式,又叫構造方法,也可以叫初始化函式。它的作用就是初始化例項時,初始化傳入例項的的預設值。如果不寫__init__(),就會呼叫的預設為空的__init__(),說白了,這個方法不管你寫不寫,都會呼叫,而且,一旦例項化就會呼叫。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class
dog(
object
):
"dog class"
def
__init__(
self
,name):
#構造方法,不寫呼叫預設的構造方法
self
.name
=
name
def
eat(
self
,food):
print
(
"the dog name is {0},it like food is {1}"
.
format
(
self
.name,food))
d
=
dog(
"alex"
)
d.eat(
"hotdog"
)
#輸出
the dog name
is
alex,it like food
is
hotdog
|
三、總結
最後我們畫一個圖,來說明一下實話過程的圖,不然真的很難理解這個玩意:
由上圖可知:其實self,就是例項本身!你例項化時python會自動把這個例項本身通過self引數傳進去。