Python 中的方法覆蓋

已發表: 2023-01-28

目錄

理解方法覆蓋的先決條件:

方法覆蓋是面向對象編程中最重要的概念之一。 父類中定義的子類中特定功能的實現可以通過方法重寫來更改。 方法覆蓋可以定義為子類改變其父類之一(稱為祖先)提供的方法的執行的能力。 要重寫一個函數,類要滿足以下條件。

  • 可繼承類:無法在類內執行函數覆蓋。 從父類派生子類是必要的。
  • 在子類和父類中重新定義的函數的簽名應該是相同的。 也就是說,被重寫的函數和父類中的函數應該有相同數量的參數和形參。

Python 中的方法覆蓋概述:

如前所述,面向對象編程語言的方法覆蓋屬性,子類通過該屬性提供已由其超類之一提供的方法的特定實現。 當子類(子類)中的方法與其超類中的方法具有相同的參數或簽名、相同的名稱和相同的返回類型或子類型時,則稱子類(子類)中的方法覆蓋了超類(父類)的方法。

用於調用已執行方法的對象決定了它的版本。 如果使用超類中的對象調用該方法,將執行超類中的版本。 但是,如果一個方法被子類中的對象調用,那麼子類的版本將被執行。 換句話說,所引用對象的類型用於確定被覆蓋和執行的方法的版本。 重寫方法的版本不是由引用變量的類型決定的。

查看 upGrad 的數據科學課程

方法覆蓋的好處:

Python 中方法重寫的主要優點是,該類為繼承的方法提供了一個自己定義的模型,而無需更改父類的代碼。 在子類使用具有多個子類的父類的情況下,此功能也很有用。 在這種情況下,父類的方法和參數可以被子類調用,而無需修改父類的代碼。

探索我們的熱門數據科學課程

IIITB 的數據科學執行研究生課程 商業決策數據科學專業證書課程 亞利桑那大學數據科學碩士
IIITB 的數據科學高級證書課程 馬里蘭大學數據科學和商業分析專業證書課程 數據科學課程

閱讀我們流行的數據科學文章

數據科學職業道路:綜合職業指南 數據科學職業發展:工作的未來就在這裡 為什麼數據科學很重要? 數據科學為企業帶來價值的 8 種方式
數據科學對管理者的相關性 每個數據科學家都應該擁有的終極數據科學備忘單 你應該成為數據科學家的 6 大理由
數據科學家的一天:他們做什麼? 神話破滅:數據科學不需要編碼 商業智能與數據科學:有什麼區別?

方法覆蓋和方法重載之間的區別

方法覆蓋

方法重載

父類和子類中的方法或函數必須具有相同的簽名和相同的名稱。 函數或方法必須具有相同的名稱。 但是,它們的簽名不必相同。
這是運行時多態性的一個例子。 這個過程是編譯時多態性的一個例子。
繼承是 Python 中方法重寫的必要條件。 在某些情況下可能需要類的繼承。 但是,可能並非在所有情況下都需要。
方法覆蓋發生在父類和子類中的方法之間。 但是,它不能發生在一個類中。 方法重載發生在同一個類中的方法之間。
此功能用於更改現有方法的行為。 它用於向方法的行為添加更多內容。
至少需要兩個類(一個子類和一個父類)來執行方法覆蓋。 不需要額外的類,因為重載發生在同一個類中的方法之間。

如果您想深入了解 Python 中的方法覆蓋,我們建議您參加為期 18 個月的數據科學理學碩士課程 upGrad 從 IIIT Bangalore 和 Liverpool John Moore's University 提供這門課程。 該課程教授您統計、使用 Python 進行預測分析、機器學習、數據可視化、大數據分析等技能。 對 Python 概念有深入了解的學生可以很好地處理深度學習、自然語言處理、業務分析和數據工程等主題。

想要分享這篇文章?

為未來的職業做準備

申請數據科學理學碩士