国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python中面向對象-怎么創建一個類

only_do / 2772人閱讀

摘要:文字有點長,對于不想看文字的朋友,可以去這里看視頻,視頻可能更好理解本節課,我們來學習,如何創建一個類,也就是怎么用畫設計方案先來看一下前面課程里出現過的幾張設計方案前面女媧造人的故事里,女媧創造了張設計方案我們接下來根據那個故事的節奏,也

文字有點長,對于不想看文字的朋友,可以去這里看視頻,視頻可能更好理解

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

本節課,我們來學習,如何創建一個類, 也就是怎么用python畫設計方案

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

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

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

創建類 創建 物種設計圖 的類

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

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

那么我們設計的類如下:

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

要創建一個類, 和創建一個函數差不多,

先寫一個class,然后一個空格, 接著寫類的名字,

類的名字和變量名的命名規則一樣,通常類名建議駝峰命名法

也就是要像個駱駝

比如,
你的類名是 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 就代表當時那種情景下的自己

如果你還不理解不要緊,接下來的課程里,我們會詳細的講解

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43695.html

相關文章

  • Python理解面向對象

    摘要:面向對象編程,簡稱,是一種程序設計思想。面向過程與面向對象面向過程的程序設計把函數作為程序的基本單元。以上是在計算機世界里認識面向對象和面向過程,接下來給大家舉個生活中的例子就拿你早上想吃雞蛋灌餅為例。 面向對象編程——Object Oriented Programming,簡稱OOP,是一種程序設計思想。OOP把對象作為程序的基本單元,一個對象包含了數據和操作數據的函數。 面向過程 ...

    hatlonely 評論0 收藏0
  • Python實例一個背后發生了什么

    摘要:好吧,事實上,類本身也是實例,當然,它們是元類的實例。中的一切都是對象,它們要么是類的實例,要么是元類的實例,除了。 寫在最前面 一些很重要的知識,我的寫得有點亂,也可以去看這些文章 Python 面向對象(初級篇) Python 面向對象(進階篇) 深刻理解Python中的元類(metaclass) 首先來看一個例子,正常情況下我們定義并且實例一個類如下 class Foo(ob...

    shusen 評論0 收藏0
  • 4-面向對象編程

    摘要:聲明對象構造函數,創建實例需要用到訪問限制封裝性是面向對象的一大特點,如果要內部屬性不被外部調用,需要加上兩個下劃線這樣就沒辦法直接通過實例來訪問這個變量了因為這個時候,變量已經被隱式的變成了繼承繼承的一般寫法為所有的類都繼承于這個類。 包 python中包的引用是一個坑,經常出現這個文件夾的代碼,引用不到另一個文件夾的代碼,這個時候就必須要去更改環境變量,無論如何,總感覺不是一種優雅...

    LancerComet 評論0 收藏0
  • 淺談JavaScript的面向對象和它的封裝、繼承、多態

    摘要:會造成內存浪費的問題構造函數繼承聲明父類聲明子類生成實例組合式繼承組合式繼承是汲取了兩者的優點,既避免了內存浪費,又使得每個實例化的子類互不影響。 寫在前面 既然是淺談,就不會從原理上深度分析,只是幫助我們更好地理解... 面向對象與面向過程 面向對象和面向過程是兩種不同的編程思想,剛開始接觸編程的時候,我們大都是從面向過程起步的,畢竟像我一樣,大家接觸的第一門計算機語言大概率都是C語...

    MAX_zuo 評論0 收藏0
  • 如何系統地自學 Python

    摘要:這里推薦一本書源碼剖析源碼剖析豆瓣這本書把源碼中最核心的部分,給出了詳細的闡釋,不過閱讀此書需要對語言內存模型和指針有著很好的理解。   是否非常想學好 Python,一方面被瑣事糾纏,一直沒能動手,另一方面,擔心學習成本太高,心里默默敲著退堂鼓?   幸運的是,Python 是一門初學者友好的編程語言,想要完全掌握它,你不必花上太多的時間和精力。   Python 的設計哲學之一就是...

    zgbgx 評論0 收藏0

發表評論

0條評論

only_do

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<