課時36:類與物件:給大家介紹物件

那是個好男孩發表於2018-08-23

目錄:

  一、物件=屬性+方法

  二、課時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課後習題及答案

*******************************

 

 

相關文章