Python 中的繼承 | Python 繼承 [附例]

已發表: 2020-12-14

Python 是最流行的編程語言之一。 儘管從 Python 2 版本到 Python 3 的過渡充滿了起起落落,但面向對象的編程語言的受歡迎程度卻出現了巨大的飛躍。

如果您計劃從事 Python 開發人員的職業,那麼您一定會獲得更高的報酬。 Python 開發人員平均年薪約為 119,082 美元。 但是,在你繼續 Python 學習程序之前,你應該首先了解一些事情——Python 中的繼承。 如果您渴望獲得 Python 和其他工具方面的專業知識,請查看我們的數據科學認證。

讓我們首先從 Python 中的繼承到底是什麼開始?

目錄

Python中的繼承是什麼?

就像父子關係一樣,繼承適用於相對於基類的派生類。 每個“派生”類都繼承自“基”類。 繼承以 UML 或統一建模語言表示。 它是一種標準建模語言,包括一組集成的圖表,可幫助開發人員指定、構建和記錄軟件系統元素。

繼承關係將繼承自其他類的類定義為派生類、子類或子類型類。 基類仍然是子類繼承的來源。 例如,您有一個“Animal”基類,而“Lion”是一個派生類。 繼承將是 Lion is an Animal。

那麼問題來了,“Lion”類從“Animal”繼承了什麼?

“Lion”類繼承

  • 界面
  • 執行

注意:您可以在稱為Liskov 替換原則的應用程序中將派生類對象替換為基類對象 它表明如果計算機程序將對象 P 作為 Q 的子類型,則可以輕鬆地將 P 替換為 Q 而無需更改屬性。

還結帳:印度的 Python 開發人員薪水

Python中繼承的優點

  • Python 中的繼承有助於開發人員重用對象。
  • 每次一個類繼承基類時,它就可以訪問父對象的功能。
  • 由於基類已經過測試,因此繼承的可重用性也是可靠的。
  • 開發時間和成本低
  • 跨類的接口標準化變得容易。
  • 減少代碼冗餘並幫助提高可擴展性
  • 類庫的創建變得容易。

Python中的繼承類型

單一繼承

我們已經看到了單繼承是什麼——從“基”類繼承“派生”類。 讓我們通過一個例子來理解它,

班級國家:

def ShowCountry(自己):

print(“這是西班牙”);

類狀態(國家):

def ShowState(自我):

print(“這是狀態”);

st =狀態();

st.ShowCountry();

st.ShowState();

多級繼承

Python 由多個對象組成,並且通過多級繼承,重用類功能的可能性無窮無盡。 每次派生類繼承另一個派生類時,都會記錄多級繼承。 可以繼承功能的派生類的數量沒有限制,這就是為什麼多級繼承有助於提高 Python 中的可重用性。

這是一個多級繼承的例子

動物類:

def 說話(自己):

打印(“動物說話”)

#子類Dog繼承基類Animal

類狗(動物):

定義樹皮(自我):

打印(“狗吠”)

#子類Dogchild繼承另一個子類Dog

類 DogChild(狗):

默認吃(自己):

print(“吃麵包……”)

d = DogChild()

d.bark()

d.speak()

d.吃()

多重繼承

Python 使開發人員能夠將多個功能和屬性從不同的基類繼承到單個派生類中。 它主要是一個很棒的功能,因為它可以讓您在沒有大量工具或編碼的情況下繼承多個依賴項。

讓我們看一個多重繼承的例子。

類計算1:

def 總和(自我,a,b):

返回 a+b;

類計算2:

def 乘法(自我,a,b):

返回 a*b;

派生類(Calculation1,Calculation2):

def 除法(自我,a,b):

返回 a/b;

d = 派生()

打印(d.Summation(10,20))

打印(d.乘法(10,20))

打印(d.Divide(10,20))

查看:如何使用 Python 將語音轉換為文本

如何識別派生類?

Python 帶有一個內置的 issubclass() 函數,可以幫助開發人員檢查一個類是派生類還是基類。 運行此函數後,對於子類或派生類,它返回結果“True”,而對於基類返回 False。

開發者可以通過這個例子檢查類。

班級我的年齡:

年齡 = 36

類 myObj(myAge):

名稱=“約翰”

年齡 = 我的年齡

x = issubclass(myObj, myAge)

如何在 Python 中創建類層次結構?

Python 中的繼承有助於創建類的層次結構。 所有相關類將共享一個公共接口以相互通信。 基類定義接口。 派生類可以提供接口的特定專業化。 在這裡,我們正在探索一個 HR 模型來展示類層次結構。

人力資源系統將處理不同公司員工的工資單; 每個工人都通過一個 ID 進行識別,並有不同的工資職位需要計算。

讓我們首先創建一個工資單類作為“Base”對象。

# 在 hr.py 中

類工資系統:

def calculate_payroll(自我,工人):

print('計算工資')

print('===================')

對於工人中的工人:

print(f'Payroll for: {worker.id} – {worker.name}')

print(f'- 支票金額:{worker.calculate_payroll()}')

打印(”)

PayrollSystem執行一個.calculate_payroll()方法,方法收集工人的信息,打印他們的 ID、姓名,並檢查工資單金額 現在,您運行一個基類worker來處理每個 worker 類型的標準接口:

# 在 hr.py 中

班級工人:

def __init__(self, id, name):

自我.id = id

self.name = 名稱

為公司中的所有員工類型創建一個 Worker 基類使 HR 系統的層次結構變得容易。 每個工人都被分配了一個名字和ID。 HR 系統要求員工通過 .calculate_payroll() 接口提供有關其周薪的數據。 這個接口的執行可能會根據worker的類型而有所不同。

必讀:Python 面試題

結論

在這裡,我們學會了創建不同的 Python 類,建立它們之間的關係,甚至設置類層次結構。 但是,Python 中的繼承不僅限於這裡提到的功能。

機器學習和人工智能高級認證:印度最好的教育機構之一 IIT madras 與 upGrad 合作,為個人開設了機器學習高級課程,讓個人通過本課程全面了解機器學習。

如果您想了解數據科學,請查看 IIIT-B 和 upGrad 的數據科學執行 PG 計劃,該計劃是為在職專業人士創建的,提供 10 多個案例研究和項目、實用的實踐研討會、行業專家的指導、1與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。

為什麼繼承在 Python 中很重要?

繼承是指將父類的屬性傳遞給子類的過程。 它是一個面向對象編程(OOP)的概念,在 Python 中很重要。 這是因為繼承提供了代碼可重用性,這意味著我們可以在子類中繼承我們需要的屬性,而不是一遍又一遍地編寫相同的代碼。 它也很容易理解和實現,因為它描述了父類和子類之間的真實關係。 它具有傳遞性。 因為所有子類都從其父類繼承屬性,所以任何子類都將同樣使用父類的功能。

學習Python時需要繼承嗎?

是的,在學習 Python 時學習繼承是必要的。 大量的 Python 應用程序需要增加當前市場中 Python 程序員的數量。 這種激增導致學習 Python 的人數增加。 Python 編程語言具有豐富的概念,例如繼承。 這種面向對象編程語言的基本概念之一是繼承。 由於繼承允許代碼可重用性、可讀性和屬性轉換,因此在學習 Python 的同時學習它是必要的。 繼承有助於創建準確高效的代碼。

在 Python 中,不支持哪些類型的繼承?

與其他面向對象的編程語言不同,Python 允許所有形式的繼承,包括多重繼承。 可以使用繼承概念從預先存在的類中構造新類。 這有利於代碼的重用。 父類中指定的方法也在子類中使用。 雖然 C++ 也支持這種繼承,但它缺乏 Python 先進且設計良好的方法。 Python 甚至提供了混合繼承,它允許我們在單個代碼中實現多種類型的繼承。 因為代碼可重用性是繼承的優勢,所以在使用 Python 時,它在廣泛的應用程序中很有幫助。