1. 程式人生 > >面向物件【day07】:類的例項化過程剖析(三)

面向物件【day07】:類的例項化過程剖析(三)

本節內容

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)     =  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))   =  dog( "alex" ) d.eat( "hotdog" ) #輸出 the dog name  is  alex,it like food  is  hotdog

三、總結

  最後我們畫一個圖,來說明一下實話過程的圖,不然真的很難理解這個玩意:

由上圖可知:其實self,就是例項本身!你例項化時python會自動把這個例項本身通過self引數傳進去