22. 企業級開發基礎3:類和物件

大牧莫邪發表於2017-05-22

本節內容開始,講解企業級專案開發基礎部分:物件導向;主要從物件的抽象、物件的建立,物件中特殊的方法,物件導向的封裝、繼承、多型等各個方面來進行講解。

本節主要內容 * 什麼是物件 * 類和物件的概念和區別 * 類的定義 * 物件的初始化 * 物件的使用 * self關鍵字

1. 關於物件那點事兒

首先,我們先回顧一下關於程式

程式:是用來按照一定的順序解決問題的 解決問題:解決一個實際問題的核心是處理資料 資料:python中,認為所有的資料都是物件

此時,出現了一個模糊的概念:物件; 那什麼是物件呢?

從哲學上說:一切皆物件。

路人甲說:“物件就是看得見摸的著的東西。”

路人乙說:“關於這個東西和物件,有木有更加細緻一點的描述呢?”

路人丙說:“物件,就是看得見摸的著的,可能有自己的特徵,可能有自己的行為的一種東西。 比如我們都看得見的電腦,電腦有自己的特徵<電腦品牌、電腦的尺寸、電腦CPU型號、電腦的硬碟容量等等>,電腦也有自己的行為<播放視訊、播放音樂、玩遊戲、寫文件等等>。 特徵是電腦自己靜態的屬性,一般用名詞來表示,行為是電腦的動作,一般用動詞來表示。”

大師:物件,就是有自己的特徵和行為的,實際存在的一種物體!我們描述物件,就是使用各種資料來描述物件的特徵和行為的過程。

2. python中的類和物件

python中的物件,一般分為兩種: * 內建物件 * 自定義物件

python已經提供了大量的內建物件,方便我們的操作,如數字物件、字串物件、列表物件、字典物件、元組物件、集合物件、等等;但是又說了~內建物件是不是能描述我們專案中用到的所有的資料型別呢?明顯這是不可能的,沒有任何一門程式語言能內建好這個世界上出現的或者未曾出現的各種物件,所以除了內建物件,我們還需要自定義物件,自定義型別和物件也是我們本章開始說的重點的內容

2.1. 內建物件

python的內建物件,一般都和我們使用的python模組有莫大的關係,官方純粹的python中就內建了大量的物件

| 內建物件| 描述 | 使用方式 |

| ------------- |:-------------:| -----:|

|數字物件| 數字在python中就是物件 | 1、3.14 |

|字串物件| 字串也是物件| “hello” |

|列表物件| List| [1,2,3,4,5,6,7] |

|元組物件| tuple| (1,2,3,4,5,6) |

|集合物件| set | {1,2,3,4,5,6,7,8} |

|字典物件| dict| {"name":"jerry", "age":56} |

|檔案物件| file| myFile = open("d:/abc.txt") |

|其他物件|其他使用的模組| easygui.msgbox("你好")|

2.2. 自定義型別和物件

類:就是一種資料的型別,就是一種型別,簡稱類。是對一部分具有相同特徵(屬性)和相似行為(方法)的物件的抽象。 如:人類,就是一種類,人類表示的是人的型別,型別只是一個描述資料的概念,是一個代號,不是實際存在的事物;這個類可以定義人具有的特徵和行為,定義特徵(姓名、年齡、性別),定義行為(吃飯、睡覺、工作)。

物件:物件就是某個類表示的具體的實際存在的事物了,具有具體資料來描述自己的特徵,也有具體的行為操作。 如:張小凡,就是一個具體的人,有自己具體資料描述的特徵(姓名:張小凡、年齡:22、性別:男),有自己具體的行為(吃燒雞、睡大床、工作->砍竹子)

大師:類,就是型別,是一種資料型別,是一部分具有共同特徵(屬性)和行為(方法)的物件,抽象出來的一個概念、一個代號。 物件,就是類描述的型別中一個具體存在的事物,是一個具有明確特徵資料和行為操作的物體。

3. python中定義類和建立物件

定義類的步驟: * 首先根據我們操作的物件來抽象共同的特徵和行為,也稱為屬性和方法 * 通過python中的class關鍵字來定義一個類 * 在類中,定義這類事物的屬性和方法 * 在使用時,通過類名稱()的語法來建立物件

```

# 定義類的語法結構
class 類名稱(object):
    def __init__(self, 屬性列表):
        初始化屬性
    def 方法名稱(self):
        方法的操作程式碼

# 使用類來建立物件
變數名稱 = 類名稱(屬性值)

```

3.1. 實際操作

3.1.1 通過一個模擬專案,來抽象一個類

建立一個遊戲專案,遊戲中有玩家的型別,玩家有暱稱、賬號、密碼、職業等屬性,有修煉的方法 ```

# 定義玩家型別
class Player(object):
    def __init__(self, nickname, username, userpass, userjob):
        self.nickname = nickname
        self.username = username
        self.userpass = userpass
        self.userjob = userjob
    def growUp(self):
        print(self.nickname + "在修煉中...")

```

3.1.2 使用型別

建立好的型別,在後續的程式碼中,就可以通過類名稱()來建立不同的物件並使用這些物件資料了 ```

zhangXiaoFan = Player("張小凡", "xaiofan", "123456", "青雲門弟子")
biYao = Player("碧瑤", "biyao", "123123", "鬼王宗少宗主")

# 使用物件的屬性
print(zhangXiaoFan.nickname)
print(zhangXiaoFan.userjob)
# 呼叫物件的行為方法
zhangXiaoFan.growUp()

# 使用物件的屬性
print(biYao .nickname)
print(biYao .userjob)
# 呼叫物件的行為方法
biYao .growUp()

# 執行結果:通過執行的結果我們可以看到不同物件的資料互相是獨立的
張小凡
青雲門弟子
張小凡在修煉中...
碧瑤
鬼王宗少宗主
碧瑤在修煉中...

```

總結及補充:

  1. 類是一種資料型別的簡稱、資料型別的簡稱、型別的簡稱,是一類具有共同屬性和相似行為的物件抽象出來的一個概念、一個代號,統稱某類事物
  2. 物件是類的具體存在的事物,程式碼中是根據類建立的具體的例項物件
  3. 類中的屬性也是一種變數,我們通常將類中的屬性稱為物件的成員變數或者成員屬性,將類中的方法稱為成員方法

未完待續,請繼續參考後續章節~物件導向

相關文章