課時36:類與對象:給大家介紹對象
- 2020 年 1 月 19 日
- 筆記
目錄:
一、對象=屬性+方法
二、課時36課後習題及答案
大家之前已經聽說過封裝的概念,把亂七八糟的數據扔進列表裡面,這是一種封裝,是數據層面的封裝;把常用的程式碼段打包成一個函數,這也是一種封裝,是語句層面的封裝;本章學習的對象,也是一種封裝的思想,不過這種思想顯然要更高級一步:對象的來源是模擬真實世界,把數據和程式碼都放在了一起。
打個比方:烏龜就是真是的一個對象:(從兩方面來描述:紅色的為靜態特徵的描述,藍色的為動態的行為)
************************
一、對象=屬性+方法
************************
python中的對象也是如此,一個對象的特徵稱為「屬性」,一個對象的行為稱為「方法」。
如果把「烏龜」寫成程式碼,將會是下邊這樣:
class Turtle: # Python 中的類名約定以大寫字母開頭 """關於類的一個簡單例子""" # 屬性 color = 'green' weight = 10 legs = 4 shell = True mouth = '大嘴' # 方法 def climb(self): print("我正在很努力的向前爬......") def run(self): print("我正在飛快的向前跑......") def bite(self): print("咬死你咬死你!!") def eat(self): print("有得吃,真滿足^_^") def sleep(self): print("困了,睡了,晚安,Zzzz
以上程式碼定義了對象的特徵(屬性)和行為(方法),但還不是一個完整的對象,將定義的這些稱為類(Class)。需要使用類來創建一個真正的對象,這個對象就叫作這個類的一個實例(Instance)也叫實例對象(Instance Objects)
可以這樣理解:這好比工廠的流水線要生產一系列玩具,是不是先做出這個玩具的模具,然後根據這個模具再進行批量生產,才得到真正的玩具。
再舉個例子:蓋房子,,是不是得先有個圖紙,但光有個圖紙你能不能住進去?顯然是不能的。圖紙只告訴了你這個房子長什麼樣子,但圖紙並不是真正的房子。要根據圖紙用鋼筋水泥建造出來的房子才能住人,另外根據一張圖紙就能蓋出很多房子。創建一個對象,也叫類的實例化,其實很簡單:
>>> #先運行程式 >>> tt = Turtle()
注意,類名後邊跟著的小括弧,這跟調用函數是一樣的,所以在Python中,類名約定用大寫字母開頭,函數用小寫字母開頭,這樣更容易區分。另外賦值操作並不是必需的,但如果沒有把創建好的實例對象賦值給一個變數,那這個對象就沒辦法使用,因為沒有任何引用指向這個實例,最終會被Python的垃圾收集機制自動回收。
那如果要調用對象里的方法,使用點操作符(.)即可。
>>> tt.climb() 我正在很努力的向前爬...... >>> tt.bite() 咬死你咬死你!! >>> tt.sleep() 困了,睡了,晚安,Zzzz
*******************************
二、課時36課後習題及答案
*******************************