99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python類的繼承詳解

python爬蟲知識(shí)分享 ? 來源:python爬蟲知識(shí)分享 ? 作者:python爬蟲知識(shí)分享 ? 2022-03-08 16:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python類的繼承

類的繼承,跟人類繁衍的關(guān)系相似。

被繼承的類稱為基類(也叫做父類),繼承而得的類叫派生類(也叫子類),這種關(guān)系就像人類的父子關(guān)系。

繼承最大的好處是子類獲得了父類的全部變量和方法的同時(shí),又可以根據(jù)需要進(jìn)行修改、拓展。

繼承的語法結(jié)構(gòu)是

class 子類(父類):

1. 單繼承

舉個(gè)例子:下面的代碼中。先是定義了一個(gè) People 類,里面有一個(gè) speak 方法。然后再定義一個(gè) Student 類,并繼承自 People 類。

# 父類定義
class People:
    def __init__(self, name, age, weight):
        self.name = name
        self.age = age

    def speak(self):
        print(f"{self.name} 說: 我{self.age}歲。")

# 單繼承示例
class Student(People):
    def __init__(self, name, age, weight, grade):
        # 調(diào)用父類的實(shí)例化方法
        People.__init__(self, name, age, weight)
        self.grade = grade

由于繼承的機(jī)制,Student 實(shí)例會(huì)擁有 People 類所有屬性和方法,比如下邊我可以直接調(diào)用 People 類的 speak 方法。

>>> xm = Student(name="小明", age=10, weight=50, grade="三年級(jí)")
>>> xm.speak()
小明 說: 我 10 歲。

你如果不想使用父類的方法,你可以重寫它以覆蓋父類的 speak 方法。

# 單繼承示例
class Student(People):
    def __init__(self, name, age, weight, grade):
        # 調(diào)用父類的實(shí)例化方法
        People.__init__(self, name, age, weight)
        self.grade = grade

    # 重寫父類的speak方法
    def speak(self):
        print(f"{self.name} 說: 我{self.age}歲了,我在讀{self.grade}")

此時(shí),再調(diào)用的話,就會(huì)調(diào)用自己的方法了

>>> xm = Student(name="小明", age=10, weight=50, grade="三年級(jí)")
>>> xm.speak()
小明 說: 我10歲了,我在讀三年級(jí)

2. 多繼承

Python 還支持多繼承,可以繼承自多個(gè)類。

class 子類(父類1, 父類2, 父類3...):

多繼承的話,情況會(huì)比單繼承復(fù)雜得多。

假設(shè)多個(gè)父類都有一個(gè) foo 方法,并且子類沒有重寫 foo 方法,那么 子類 的實(shí)例在調(diào)用 foo 方法時(shí),應(yīng)該使用哪個(gè)父類的 foo 方法呢?

關(guān)于這一點(diǎn),只要簡單的做個(gè)驗(yàn)證就行啦。

有如下代碼,定義了 7 個(gè)類

class D:pass
class C(D):pass

class B(C):
    def show(self):
        print("i am B")

class G:pass
class F(G):pass

class E(F):
    def show(self):
        print("i am E")

class A(B, E):pass

運(yùn)行后的結(jié)果如下

>>> a = A()
>>> a.show()
i am B

在類A中,沒有show()這個(gè)方法,于是它只能去它的父類里查找,它首先在B類中找,結(jié)果找到了,于是直接執(zhí)行B類的show()方法。可見,在A的定義中,繼承參數(shù)的書寫有先后順序,寫在前面的被優(yōu)先繼承。

3. 繼承順序

那如果B沒有show方法,而是D有呢?

class D:
    def show(self):
        print("i am D")

class C(D):pass
class B(C):pass


class G:pass
class F(G):pass

class E(F):
    def show(self):
        print("i am E")

class A(B, E):pass

執(zhí)行結(jié)果是

>>> a = A()
>>> a.show()
i am D

由此可見,多繼承的順序使用的是從左向右再深度優(yōu)先的原則。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86824
  • 繼承
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2803
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二)

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二) ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融應(yīng)用 (金融理財(cái)# 一、前言 今天我們繼續(xù)深入講解
    的頭像 發(fā)表于 07-11 18:17 ?276次閱讀
    【HarmonyOS 5】鴻蒙中的UIAbility<b class='flag-5'>詳解</b>(二)

    HarmonyOS 5 makeObserved接口詳解

    【HarmonyOS 5】makeObserved接口詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融應(yīng)用 (金融理財(cái)# 一、makeObserved接口
    的頭像 發(fā)表于 06-16 17:58 ?290次閱讀

    python入門圣經(jīng)-高清電子書(建議下載)

    和Pygal 等強(qiáng)大的Python 庫和工具介紹,以及列表、字典、if 語句、、文件與異常、代碼測(cè)試等內(nèi)容; 第二部分將理論付諸實(shí)踐,講解如何開發(fā)三個(gè)項(xiàng)目,包括簡單的Python 2D 游戲開發(fā)如何利用數(shù)據(jù)
    發(fā)表于 04-10 16:53

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡單的Python程序。什么是Python程序?
    的頭像 發(fā)表于 03-25 09:27 ?766次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    Python繪圖Matplotlib快速參考手冊(cè)

    ?PYTHON
    發(fā)表于 02-07 14:04 ?0次下載

    使用Python實(shí)現(xiàn)xgboost教程

    使用Python實(shí)現(xiàn)XGBoost模型通常涉及以下幾個(gè)步驟:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評(píng)估和模型預(yù)測(cè)。以下是一個(gè)詳細(xì)的教程,指導(dǎo)你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?1387次閱讀

    使用Python進(jìn)行串口通信的案例

    python復(fù)制代碼 import serialimport time # 配置串口參數(shù)serial_port = '/dev/ttyUSB0' # 在Windows上可能是 'COM3' 或其他
    的頭像 發(fā)表于 11-22 09:11 ?1480次閱讀

    Python代理技術(shù)詳解:從入門到進(jìn)階

    Python代理技術(shù)是一種在網(wǎng)絡(luò)編程中廣泛使用的技術(shù),它允許通過代理服務(wù)器發(fā)送和接收網(wǎng)絡(luò)請(qǐng)求。
    的頭像 發(fā)表于 11-12 07:06 ?645次閱讀

    使用Python進(jìn)行圖像處理

    下面是一個(gè)關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?592次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行圖像處理

    基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)庫案例:SafeQueue

    操作。根據(jù)繼承SafeQueueInner抽象,并對(duì)dequeue的pop方法的重寫,可以實(shí)現(xiàn)SafeStack和SafeQueue的相關(guān)方法。本案例主要完成如下
    的頭像 發(fā)表于 08-30 12:41 ?694次閱讀
    基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)<b class='flag-5'>類</b>庫案例:SafeQueue

    基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)庫案例:SafeStack

    操作。根據(jù)繼承SafeQueueInner抽象,并對(duì)dequeue的pop方法的重寫,可以實(shí)現(xiàn)SafeStack和SafeQueue的相關(guān)方法。本案例主要完成如下
    的頭像 發(fā)表于 08-30 12:41 ?700次閱讀
    基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的C++公共基礎(chǔ)<b class='flag-5'>類</b>庫案例:SafeStack

    java子類可以繼承的什么

    Java是一種面向?qū)ο蟮木幊陶Z言,它支持繼承的概念。繼承是面向?qū)ο缶幊痰娜筇匦灾?,它允許一個(gè)(稱為子類或派生繼承另一個(gè)
    的頭像 發(fā)表于 08-20 11:02 ?2381次閱讀

    使用Python進(jìn)行Ping測(cè)試

    )請(qǐng)求包,然后等待目標(biāo)主機(jī)返回響應(yīng)包,從而測(cè)量網(wǎng)絡(luò)的延遲和丟包情況。隨著Python編程語言的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)工程師開始使用Python進(jìn)行自動(dòng)化網(wǎng)絡(luò)測(cè)試和管理任務(wù)。本篇文章將詳細(xì)介紹如何使用Python進(jìn)行Ping測(cè)試
    的頭像 發(fā)表于 08-12 17:56 ?1017次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行Ping測(cè)試

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學(xué)易用、豐富的庫和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?3292次閱讀

    Python建模算法與應(yīng)用

    Python作為一種功能強(qiáng)大、免費(fèi)、開源且面向?qū)ο蟮木幊陶Z言,在科學(xué)計(jì)算、數(shù)學(xué)建模、數(shù)據(jù)分析等領(lǐng)域展現(xiàn)出了卓越的性能。其簡潔的語法、對(duì)動(dòng)態(tài)輸入的支持以及解釋性語言的本質(zhì),使得Python在多個(gè)平臺(tái)
    的頭像 發(fā)表于 07-24 10:41 ?1277次閱讀