chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

python類的繼承詳解

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

掃碼添加小助手

加入工程師交流群

python類的繼承

類的繼承,跟人類繁衍的關系相似。

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

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

繼承的語法結構是

class 子類(父類):

1. 單繼承

舉個例子:下面的代碼中。先是定義了一個 People 類,里面有一個 speak 方法。然后再定義一個 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)用父類的實例化方法
        People.__init__(self, name, age, weight)
        self.grade = grade

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

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

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

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

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

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

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

2. 多繼承

Python 還支持多繼承,可以繼承自多個類。

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

多繼承的話,情況會比單繼承復雜得多。

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

關于這一點,只要簡單的做個驗證就行啦。

有如下代碼,定義了 7 個類

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

運行后的結果如下

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

在類A中,沒有show()這個方法,于是它只能去它的父類里查找,它首先在B類中找,結果找到了,于是直接執(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í)行結果是

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

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

審核編輯:符乾江

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

    關注

    57

    文章

    4866

    瀏覽量

    89799
  • 繼承
    +關注

    關注

    0

    文章

    10

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MAX9744 20W 立體聲 D 揚聲器放大器:設計與應用詳解

    MAX9744 20W 立體聲 D 揚聲器放大器:設計與應用詳解 在音頻放大器領域,D 放大器憑借其高效率的特點逐漸成為主流選擇。今天,我們要深入探討的是 MAXIM 公司的 MAX9744
    的頭像 發(fā)表于 01-16 16:30 ?49次閱讀

    沒有專利的opencv-python 版本

    所有 官方發(fā)布的 opencv-python 核心版本(無 contrib 擴展)都無專利風險——專利問題僅存在于 opencv-contrib-python 擴展模塊中的少數(shù)算法(如早期 SIFT
    發(fā)表于 12-13 12:37

    圖解碼說-六大UML圖關系(依賴,繼承,實現(xiàn),關聯(lián),聚合,組合)

    UML 圖是面向對象設計的 “施工圖”,而依賴、繼承、實現(xiàn)、關聯(lián)、聚合、組合這六大關系,就是圖中定義互動規(guī)則的核心 “語法”。掌握它們,就能快速看懂
    的頭像 發(fā)表于 11-05 09:03 ?569次閱讀
    圖解碼說-六大UML<b class='flag-5'>類</b>圖關系(依賴,<b class='flag-5'>繼承</b>,實現(xiàn),關聯(lián),聚合,組合)

    淘寶商品詳情接口(item_get)企業(yè)級全解析:參數(shù)配置、簽名機制與 Python 代碼實戰(zhàn)

    本文詳解淘寶開放平臺taobao.item_get接口對接全流程,涵蓋參數(shù)配置、MD5簽名生成、Python企業(yè)級代碼實現(xiàn)及高頻問題排查,提供可落地的實戰(zhàn)方案,助你高效穩(wěn)定獲取商品數(shù)據(jù)。
    的頭像 發(fā)表于 09-26 09:13 ?623次閱讀
    淘寶商品詳情接口(item_get)企業(yè)級全解析:參數(shù)配置、簽名機制與 <b class='flag-5'>Python</b> 代碼實戰(zhàn)

    termux如何搭建python游戲

    termux如何搭建python游戲 Termux搭建Python游戲開發(fā)環(huán)境的完整指南 一、Termux基礎環(huán)境準備 Termux是一款無需root即可在安卓設備上運行的Linux終端
    發(fā)表于 08-29 07:06

    python app不能運行怎么解決?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    發(fā)表于 08-06 06:27

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

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

    HarmonyOS 5 makeObserved接口詳解

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

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

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

    ?如何在虛擬環(huán)境中使用 Python,提升你的開發(fā)體驗~

    RaspberryPiOS預裝了Python,你需要使用其虛擬環(huán)境來安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負責人NateContino撰寫的一篇實用教程,幫助你入門
    的頭像 發(fā)表于 03-25 09:34 ?735次閱讀
    ?如何在虛擬環(huán)境中使用 <b class='flag-5'>Python</b>,提升你的開發(fā)體驗~

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

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

    運行OVModelForCausalLM Python模塊時出錯了,怎么解決?

    創(chuàng)建了一個自定義 Python* 代碼,類似于遵循 240-dolly-2-instruction 的 Jupyter 筆記本。 OVModelForCausalLM Python* 模塊運行時出錯。
    發(fā)表于 03-05 06:44

    KiCad 9 探秘(六):如何用&quot;器件&quot;玩轉多通道設計與自定義DRC規(guī)則

    中發(fā)揮重要的作用。 ? ” 什么是器件(Component Class)? 器件本質上是元器件的分組工具。當您在原理圖中為符號指定某個器件后,對應 PCB 中的封裝也會自動繼承
    的頭像 發(fā)表于 02-08 11:14 ?2772次閱讀
    KiCad 9 探秘(六):如何用&quot;器件<b class='flag-5'>類</b>&quot;玩轉多通道設計與自定義DRC規(guī)則

    Python繪圖Matplotlib快速參考手冊

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

    Python Connector for InterBase連接解決方案

    適用于 InterBase 的 Python 連接器 Python Connector for InterBase 是一種可靠的連接解決方案,用于從 Python 應用程序訪問 InterBase
    的頭像 發(fā)表于 01-22 14:34 ?838次閱讀