精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

python類的繼承詳解

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-08 16:40 ? 次閱讀

python類的繼承

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

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

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

繼承的語法結構是

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):
        # 調用父類的實例化方法
        People.__init__(self, name, age, weight)
        self.grade = grade

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

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

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

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

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

此時,再調用的話,就會調用自己的方法了

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

2. 多繼承

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

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

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

假設多個父類都有一個 foo 方法,并且子類沒有重寫 foo 方法,那么 子類 的實例在調用 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類中找,結果找到了,于是直接執行B類的show()方法。可見,在A的定義中,繼承參數的書寫有先后順序,寫在前面的被優先繼承。

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

執行結果是

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

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

審核編輯:符乾江

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

    關注

    56

    文章

    4782

    瀏覽量

    84449
  • 繼承
    +關注

    關注

    0

    文章

    10

    瀏覽量

    2689
收藏 人收藏

    評論

    相關推薦

    使用Python進行串口通信的案例

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

    Python代理技術詳解:從入門到進階

    Python代理技術是一種在網絡編程中廣泛使用的技術,它允許通過代理服務器發送和接收網絡請求。
    的頭像 發表于 11-12 07:06 ?165次閱讀

    基于OpenHarmony標準系統的C++公共基礎庫案例:SafeQueue

    操作。根據繼承SafeQueueInner抽象,并對dequeue的pop方法的重寫,可以實現SafeStack和SafeQueue的相關方法。本案例主要完成如下
    的頭像 發表于 08-30 12:41 ?238次閱讀
    基于OpenHarmony標準系統的C++公共基礎<b class='flag-5'>類</b>庫案例:SafeQueue

    基于OpenHarmony標準系統的C++公共基礎庫案例:SafeStack

    操作。根據繼承SafeQueueInner抽象,并對dequeue的pop方法的重寫,可以實現SafeStack和SafeQueue的相關方法。本案例主要完成如下
    的頭像 發表于 08-30 12:41 ?284次閱讀
    基于OpenHarmony標準系統的C++公共基礎<b class='flag-5'>類</b>庫案例:SafeStack

    java子類可以繼承的什么

    Java是一種面向對象的編程語言,它支持繼承的概念。繼承是面向對象編程的三大特性之一,它允許一個(稱為子類或派生繼承另一個
    的頭像 發表于 08-20 11:02 ?919次閱讀

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?1697次閱讀

    python中open函數的用法詳解

    python中open函數的用法詳解 Python中的open()函數用于打開文件。它接受文件名和模式作為參數,并返回一個文件對象。文件對象可用于讀取、寫入和管理文件。 open()函數的基本語法
    的頭像 發表于 01-30 15:31 ?1948次閱讀

    python運行環境的安裝和配置

    Python是一種非常流行的編程語言,廣泛應用于科學計算、Web開發、人工智能等領域。為了能夠正常運行Python程序,我們需要先安裝和配置Python運行環境。本文將為您詳盡介紹Python
    的頭像 發表于 11-29 16:17 ?1104次閱讀

    Python運行環境有哪些

    Python是一種廣泛使用的高級編程語言,它有許多種運行環境,可以適應不同的開發需求。下面將詳細介紹Python的幾種常見的運行環境。 CPython: CPython是Python的默認解釋器
    的頭像 發表于 11-29 16:14 ?1909次閱讀

    python軟件對電腦配置要求

    Python是一種流行的編程語言,它在許多不同的領域中被廣泛使用,例如網站開發、數據科學和機器學習等。對于使用Python的開發者來說,了解Python軟件的電腦配置要求是非常重要的。本文將詳細介紹
    的頭像 發表于 11-29 14:58 ?9773次閱讀

    查看python安裝路徑的方法

    Python是一種高級編程語言,常用于開發Web應用、數據分析、人工智能等領域。在使用Python進行開發之前,我們需要先安裝Python解釋器,并了解Python解釋器的安裝路徑。本
    的頭像 發表于 11-29 14:54 ?1.1w次閱讀

    python自帶的idle怎么進入

    Python自帶的IDLE是一個集成開發環境(Integrated Development Environment),它通過提供編輯器和交互式解釋器,使得Python的開發變得更加簡單和便捷。本文將
    的頭像 發表于 11-29 14:51 ?2190次閱讀

    python shell怎么用

    Python Shell是一種交互式解釋器,可以通過命令行直接運行Python代碼。在Shell中,可以輸入一行代碼并立即得到結果,非常適合于測試、嘗試新代碼或進行簡單的任務。本文將詳細介紹
    的頭像 發表于 11-29 14:36 ?1100次閱讀

    python語言特點有哪些

    Python是一種高級編程語言,由Guido van Rossum于1991年首次發布。它具有許多獨特的特點,這些特點使得Python在軟件開發領域變得非常流行。以下是關于Python語言的詳盡
    的頭像 發表于 11-29 14:29 ?1041次閱讀

    python軟件怎么運行代碼

    Python是一種高級編程語言,它被廣泛用于開發各種類型的應用程序,從簡單的腳本到復雜的網絡應用和機器學習模型。要運行Python代碼,您需要一個Python解釋器,它可以將您的代碼翻譯成計算機可以
    的頭像 發表于 11-28 16:02 ?861次閱讀