Python中面向對象-怎麼建立一個類

文字有點長,對於不想看文字的朋友,能夠去這裏看視頻,視頻可能更好理解

https://www.piqizhu.com/v/1GK...python

本節課,咱們來學習,如何建立一個類, 也就是怎麼用python畫設計方案函數

先來看一下 前面課程裏出現過的 幾張設計方案學習

前面女媧造人的故事裏,女媧創造了6張設計方案spa

咱們接下來根據那個故事的節奏,也來創造6張設計方案設計

建立類

建立 物種設計圖 的類

先來看第一張設計方案, 物種設計方案code

這張設計圖,裏的東西,有四肢,還有個頭、身體視頻

那麼咱們設計的類以下:繼承

class 物種設計方案:
    頭 = 1
    前肢 = 2
    後肢 = 2
    身體 = 1

要建立一個類, 和建立一個函數差很少,rem

先寫一個class,而後一個空格, 接着寫類的名字,get

類的名字和變量名的命名規則同樣,一般類名建議駝峯命名法

也就是要像個駱駝

好比,
你的類名是 man 那麼應該寫成 Man

若是你的類名是 goodman 那麼你應該寫成 GoodMan

每一個單詞的首字母用大寫,若是隻有一個字母,首字母要大寫, 若是有多個單詞,每一個單詞首字母都要大寫

這只是行業裏的一個約定,並無強制規定,你不遵照也能夠

我這裏的例子,爲了方便你們理解,會使用中文漢字

class 後面的 物種設計方案 就是個人類名, 類名後面一個冒號

接着換行,一個縮進,我這裏給這個類,增長了4個屬性,就像 聲明變量同樣

一樣爲了便於你們理解,這裏的變量名我也用了中文漢字

這裏的 物種設計方案 就是咱們建立的類的名字,簡稱類名

在類中的這幾個變量,就是這個類的屬性, 就和咱們平時的變量是同樣的,但這裏的這幾個變量,歸屬於這個類, 就比如,咱們你們都歸屬於中國

如此,咱們就完成了, 物種設計方案的製做

建立 動物設計方案 的類

接下來,在這個基礎上,製做一個動物設計方案

class 動物設計方案(物種設計方案):
    def 吃東西(self):
        pass
    def 跑(self):
        pass
    def 叫(self):
        pass

你能夠發現,這個類,和上個類十分類似,但也有一些區別,

好比,類名後面多了個括號,括號裏多了物種設計方案幾個字,

並且這個類裏面,竟然寫了3個函數,這分別都是什麼含義呢?

類名後面的括號,寫了誰,就表示這個類要繼承誰, 咱們這裏的 動物設計方案, 繼承了 物種設計方案,

因此, 物種設計方案,被寫在了, 動物設計方案後面的括號裏, 這個括號,就是用來表示聲明繼承關係的

這裏咱們能夠看出 動物設計方案的 父類 就是 物種設計方案

而 物種設計方案,在類名後面,直接就是問號,沒有括號,他沒有繼承別人嗎?

實際上是有的, 在Python內部, 某個類沒有聲明繼承的話,Python會自動繼承object類, 關於object類是什麼, 咱們之後會講, 暫時你只要記住

在Python裏,全部類都是object類的後代

那麼類裏面外面寫的這3個函數是啥意思呢? 這3個函數就是類的方法, 一般咱們叫作類方法,

並且你應該也看到了, 類方法的第一個參數都是self,這個參數是必需要傳的,不能少, 但這個參數名字你能夠改爲別的, 好比 你能夠改爲, a, 或者別的

不過,爲了便於你們理解, 行業裏,你們統一都寫的是self,因此,建議你也遵照這個規定

這幾個類函數,咱們是留空的,寫了個pass語句,沒有填充內容,由於目前咱們還不知道寫什麼好

建立 人類設計方案 的類

如今,讓咱們基於 人類設計方案,創造一個類吧

class 人類設計方案(動物設計方案):
    type_name = "人"
    def 吃東西(self):
        print(self.type_name, ":開始用嘴巴吃東西")
    def 跑(self):
        print(self.type_name, ":用", self.後肢 ,"條 後肢跑")
    def 叫(self):
        print(self.type_name, ":啊啊啊")

咱們給這個類,添加了一個屬性,type name, 值爲 人

而且,咱們把從父類那裏繼承來的3個方法, 進行了重載,也就是把從父類那繼承來的類方法裏面的代碼,進行了修改,寫入了新的代碼,這幾個類方法,父類中就寫了個pass,咱們這裏改爲了print語句,這裏面你能夠寫任何代碼,就和函數沒什麼兩樣

接着咱們建立 狗類、貓類、鴨類

class 狗類設計方案(動物設計方案):
    type_name = "狗"
    def 吃東西(self):
        print(self.type_name, ":開始用嘴巴吃東西")
    def 跑(self):
        print(self.type_name, ":用", self.前肢+ self.後肢 ,"條腿 跑")
    def 叫(self):
        print(self.type_name, ":汪汪汪")

class 貓類設計方案(動物設計方案):
    type_name = "貓"
    def 吃東西(self):
        print("開始用嘴巴吃東西")
    def 跑(self):
        print(self.type_name, ":用", self.前肢+ self.後肢 ,"條腿 跑")
    def 叫(self):
        print("喵喵喵")

class 鴨類設計方案(動物設計方案):
    type_name = "鴨"
    def 吃東西(self):
        print("開始用嘴巴吃東西")
    def 跑(self):
        print(self.type_name, ":用",  self.後肢 ,"條 後肢 跑")
    def 叫(self):
        print("嘎嘎嘎")

你能夠看到,咱們給這幾個類的類方法都填充了代碼,

你應該已經發現了, 每一個類,都有一個 type_name 屬性

並且,在類方法中,都用到了type_name 這個屬性,而且,前面還多出了一個 self.

self. 這是什麼意思呢? 這裏的self 就表明 這個類本身

好比,人類設計方案, 這個類中的self,就表明這個 [人類設計方案] ,咱們這裏 打印 self.type_name

就表示 要打印, 人類設計方案 中的type_name,

一樣的道理, 在狗類設計方案中,打印 self.type_name ,就表示要訪問 狗類設計方案 的 type_name屬性

self 就表明當時那種情景下的本身

若是你還不理解沒關係,接下來的課程裏,咱們會詳細的講解

相關文章
相關標籤/搜索