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

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

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

Python中類繼承的基本規(guī)則

科技綠洲 ? 來源:技術(shù)理科直男 ? 作者:技術(shù)理科直男 ? 2023-09-20 14:24 ? 次閱讀

繼承規(guī)則

與其他基于類的語言一樣,可以通過繼承組合多個(gè)類定義。 類定義可以擴(kuò)展(或繼承)多個(gè)其他類。這些類又可以擴(kuò)展其他類。

請(qǐng)注意,類不能繼承 Python 中定義的類(即 .py 文件中包含的類定義),反之亦然。

以下小節(jié)提供了中類繼承的基本規(guī)則。

繼承順序

使用以下繼承順序規(guī)則:

  1. 默認(rèn)情況下,如果在多個(gè)超類中定義了給定名稱的類成員,則子類將從超類列表中最左邊的類中獲取定義。
  2. 如果類定義包含 Inheritance = right,則子類從超類列表中最右側(cè)的類中獲取定義。

由于歷史原因,大多數(shù)類都包含 Inheritance = right

主要的超類

任何擴(kuò)展其他類的類都有一個(gè)主要超類。

無論類使用哪種繼承順序,主超類都是第一個(gè),從左到右閱讀。

對(duì)于任何類級(jí)編譯器關(guān)鍵字,給定類使用其主超類中指定的值。

對(duì)于持久化類來說,主超類尤其重要。

最具體的類型類Most-Specific Type Class

盡管一個(gè)對(duì)象可以是屬于多個(gè)類extent的實(shí)例(例如各種超類的extent),但它始終具有最特定的類型類 (MSTC)。當(dāng)該對(duì)象是該類的實(shí)例但不是該類的任何子類的實(shí)例時(shí),類是該對(duì)象的最具體類型。

重寫方法

類從其一個(gè)或多個(gè)超類繼承方法(類方法和實(shí)例方法),可以覆蓋這些方法。如果這樣做,必須確保方法定義中的簽名與要重寫的方法的簽名匹配。子類方法的每個(gè)參數(shù)必須使用與超類方法的參數(shù)相同的數(shù)據(jù)類型,或者該數(shù)據(jù)類型的子類。但是,子類中的方法可以指定超類中未定義的其他參數(shù)。

可以使用 Python 方法覆蓋以 ObjectScript 編寫的方法,反之亦然,只要方法簽名匹配即可。

在子類的方法中,可以引用它在超類中重寫的方法。要在 ObjectScript 中執(zhí)行此操作,請(qǐng)使用 ##super() 語法。例如:

//overrides method inherited from a superclass
Method MyMethod() [ Language = objectscript ]
{
  //execute MyMethod as implemented in the superclass
  do ##super()
  //do more things....
}

注意:##super 不區(qū)分大小寫。

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

    關(guān)注

    1

    文章

    1608

    瀏覽量

    48977
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    236

    瀏覽量

    13582
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4758

    瀏覽量

    84289
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python多重繼承使用方法

    繼承是面向?qū)ο缶幊痰囊粋€(gè)重要方式,通過繼承,子類可以擴(kuò)展父的功能,Python也具有該特性,除此之外,Python還可以使用多重
    發(fā)表于 04-19 14:41

    Python與C#對(duì)比

    、private、internal、protected、protectedinternal等的訪問修飾符;7. Python沒有interface,其只能繼承,同時(shí)其還支持多繼承,而
    發(fā)表于 05-14 17:14

    如何使用Python? 優(yōu)勢(shì)有哪些?

    。  如何使用Python?  1.在Python,定義是通過class關(guān)鍵字來實(shí)現(xiàn)的:  class Student(object
    發(fā)表于 07-30 18:08

    淺析多繼承派生的虛基

    繼承派生與基有何關(guān)系?多繼承派生與虛基有何關(guān)系?
    發(fā)表于 09-30 06:26

    python繼承

    python繼承繼承,跟人類繁衍的關(guān)系相似。被繼承
    發(fā)表于 03-08 16:40

    Java繼承與派生

    對(duì)于面向?qū)ο蟮某绦蛟O(shè)計(jì)語言來說,毫無疑問是其最重要的基礎(chǔ)。抽象、封裝、繼承、多態(tài)這四大特性都離不開,只有存在,才能體現(xiàn)面向?qū)ο缶幊痰奶攸c(diǎn),今天我們就來了解一些
    發(fā)表于 09-27 10:55 ?0次下載
    Java<b class='flag-5'>類</b>的<b class='flag-5'>繼承</b>與派生

    python開發(fā)之‘’講解

    Python 在盡可能不增加新的語法和語義的情況下加入了機(jī)制。這種機(jī)制是 C++ 和 Modula-3 的混合。 Python沒有在
    發(fā)表于 03-15 14:12 ?1次下載

    C++繼承訪問級(jí)別學(xué)習(xí)總結(jié)(二)

    上一篇文章我們介紹了c++繼承學(xué)習(xí)總結(jié);今天我們繼續(xù)來分享c++繼承
    的頭像 發(fā)表于 12-24 16:10 ?683次閱讀

    python繼承詳解

    python繼承 繼承,跟人類繁衍的關(guān)系相似。 被繼承
    的頭像 發(fā)表于 03-08 16:40 ?3044次閱讀

    Python到底是如何實(shí)現(xiàn)繼承的呢

    簡單地說,在python,新建的可以繼承一個(gè)或者多個(gè)。父又可以稱為基
    的頭像 發(fā)表于 08-18 15:46 ?2287次閱讀
    <b class='flag-5'>Python</b>到底是如何實(shí)現(xiàn)<b class='flag-5'>繼承</b>的呢

    SystemVerilog繼承

    繼承是基于的面向?qū)ο缶幊?object-oriented pro - gramming)的最重要特性之一。
    的頭像 發(fā)表于 11-15 09:47 ?898次閱讀

    簡述繼承

    繼承:一個(gè)繼承另一個(gè),自動(dòng)擁有這個(gè)的屬性和方法,類似于包含與被包含的關(guān)系。被
    的頭像 發(fā)表于 02-17 15:00 ?943次閱讀
    簡述<b class='flag-5'>類</b>的<b class='flag-5'>繼承</b>

    python子類定制父及多態(tài)調(diào)用介紹

    python通過子類繼承來定制子類的行為。 ## 1.1 重寫方法 (1)如果子類和超有同名方法,根據(jù)搜索樹
    的頭像 發(fā)表于 02-23 14:51 ?579次閱讀

    網(wǎng)絡(luò)工程師學(xué)Python-繼承概念介紹

    Python ,繼承是一種重要的面向?qū)ο缶幊谈拍睢Mㄟ^繼承,我們可以定義一個(gè)新的,它繼承
    的頭像 發(fā)表于 04-20 16:56 ?438次閱讀

    Python繼承詳解

    Python ,繼承是一種重要的面向?qū)ο缶幊谈拍睢Mㄟ^繼承,我們可以定義一個(gè)新的,它繼承
    的頭像 發(fā)表于 04-20 16:56 ?1199次閱讀