Python 中的方法覆蓋
已發表: 2023-01-28目錄
理解方法覆蓋的先決條件:
方法覆蓋是面向對象編程中最重要的概念之一。 父類中定義的子類中特定功能的實現可以通過方法重寫來更改。 方法覆蓋可以定義為子類改變其父類之一(稱為祖先)提供的方法的執行的能力。 要重寫一個函數,類要滿足以下條件。
- 可繼承類:無法在類內執行函數覆蓋。 從父類派生子類是必要的。
- 在子類和父類中重新定義的函數的簽名應該是相同的。 也就是說,被重寫的函數和父類中的函數應該有相同數量的參數和形參。
Python 中的方法覆蓋概述:
如前所述,面向對象編程語言的方法覆蓋屬性,子類通過該屬性提供已由其超類之一提供的方法的特定實現。 當子類(子類)中的方法與其超類中的方法具有相同的參數或簽名、相同的名稱和相同的返回類型或子類型時,則稱子類(子類)中的方法覆蓋了超類(父類)的方法。
用於調用已執行方法的對象決定了它的版本。 如果使用超類中的對象調用該方法,將執行超類中的版本。 但是,如果一個方法被子類中的對象調用,那麼子類的版本將被執行。 換句話說,所引用對象的類型用於確定被覆蓋和執行的方法的版本。 重寫方法的版本不是由引用變量的類型決定的。
查看 upGrad 的數據科學課程
方法覆蓋的好處:
Python 中方法重寫的主要優點是,該類為繼承的方法提供了一個自己定義的模型,而無需更改父類的代碼。 在子類使用具有多個子類的父類的情況下,此功能也很有用。 在這種情況下,父類的方法和參數可以被子類調用,而無需修改父類的代碼。
探索我們的熱門數據科學課程
IIITB 的數據科學執行研究生課程 | 商業決策數據科學專業證書課程 | 亞利桑那大學數據科學碩士 |
IIITB 的數據科學高級證書課程 | 馬里蘭大學數據科學和商業分析專業證書課程 | 數據科學課程 |
閱讀我們流行的數據科學文章
數據科學職業道路:綜合職業指南 | 數據科學職業發展:工作的未來就在這裡 | 為什麼數據科學很重要? 數據科學為企業帶來價值的 8 種方式 |
數據科學對管理者的相關性 | 每個數據科學家都應該擁有的終極數據科學備忘單 | 你應該成為數據科學家的 6 大理由 |
數據科學家的一天:他們做什麼? | 神話破滅:數據科學不需要編碼 | 商業智能與數據科學:有什麼區別? |
方法覆蓋和方法重載之間的區別
方法覆蓋 | 方法重載 |
父類和子類中的方法或函數必須具有相同的簽名和相同的名稱。 | 函數或方法必須具有相同的名稱。 但是,它們的簽名不必相同。 |
這是運行時多態性的一個例子。 | 這個過程是編譯時多態性的一個例子。 |
繼承是 Python 中方法重寫的必要條件。 | 在某些情況下可能需要類的繼承。 但是,可能並非在所有情況下都需要。 |
方法覆蓋發生在父類和子類中的方法之間。 但是,它不能發生在一個類中。 | 方法重載發生在同一個類中的方法之間。 |
此功能用於更改現有方法的行為。 | 它用於向方法的行為添加更多內容。 |
至少需要兩個類(一個子類和一個父類)來執行方法覆蓋。 | 不需要額外的類,因為重載發生在同一個類中的方法之間。 |
如果您想深入了解 Python 中的方法覆蓋,我們建議您參加為期 18 個月的數據科學理學碩士課程。 upGrad 從 IIIT Bangalore 和 Liverpool John Moore's University 提供這門課程。 該課程教授您統計、使用 Python 進行預測分析、機器學習、數據可視化、大數據分析等技能。 對 Python 概念有深入了解的學生可以很好地處理深度學習、自然語言處理、業務分析和數據工程等主題。
想要分享這篇文章?
為未來的職業做準備
申請數據科學理學碩士