超級Javascript類
__main__ Python module |
ast Python module |
code Python module |
COM PHP module |
dis Python module |
Ev PHP module |
iat |
io Python module |
JavaScript |
os Python module |
PS PHP module |
Python functions |
re Python module |
resource Python module |
SPL PHP module |
StackOverflow |
struct Python module |
sys Python module |
time Python module |
types Python module |
UI PHP module
Michael Zippo
Python super() 方法允許您在子類中訪問父類的方法。這有助於減少代碼中的重複。 super () 沒有參數。類似於 Python 的面向對象編程語言的主要特徵之一是繼承。當一個新類使用另一個類的代碼來創建新類時,就會發生繼承。
當您繼承類時,您可以訪問父類的方法。這就是 super() 函數 的用武之地。
本教程將通過示例討論 Python 中繼承的基礎知識。接下來,我們將討論如何使用 super() 函數獲取值,以及從父類繼承的方法。
什麼是 Super Python? h2>
super - Python() 方法允許您訪問父類中的方法。你可以把super()看作是繼承另一個類的類中顯示方法的一種方式
這裡是super()方法的語法。
super() 方法沒有參數。在 super() 方法之後指定要繼承的方法。前面的 Python 類從 food 類的 __init __ () 方法繼承值 ‚Äã‚Äã。我們調用 super() 類方法來繼承 food 類的值 ‚Äã‚Äãinherit。
Python 繼承 是指一個過程,其中新類使用現有類的代碼來定義新類的結構
考慮繼承的一種方式是看孩子如何從孩子那裡繼承特徵。父母。孩子可以有與父母相同的頭髮顏色,甚至可以從父母那裡繼承姓氏。
在 Python 中,有兩種類型的類:
- 子類(或“子類”)繼承方法和變量。子類有時稱為姐妹類
- 主類(或“基類”)是其值“可以繼承”的類
super() Python:. Inherit from __init __()
假設我們創建一個銀行賬戶系統,跟踪持有銀行賬戶的人的憑據,我們想創建一個類來存儲用於賬戶驗證的數據我們可以使用以下代碼來實現:
這段代碼創建了一個活期賬戶項目。
現在,假設我們要創建一個類來存儲孩子的銀行賬戶項目,我們將調用 ChildAccount。該類應基於我們之前定義的 CheckingAccount 類。為此,請使用 w e可以使用super()函數。
super()允許你在子類中訪問父類的方法。
p>
在我們的示例中,我們的父類稱為CheckingAccount,我們的子類稱為ChildAccount。 CheckingAccount 為銀行帳戶創建項目,ChildAccount 繼承 CheckingAccount 的值 ‚Äã‚Äã 以創建自己的類。
現在,假設我們希望 ChildAccount 類繼承存儲在我們的 CheckingAccount 中的值“Äã”。但我們還希望這個帳戶存儲一個名為 is_child 的新值,默認情況下應該為 True。
我們可以使用創建新的 ChildAccount 類這段代碼:
這段代碼為我們的新ChildAccount類創建了一個項目。我們使用 super() 方法來繼承 Balance CheckingAccount 類的名稱和值。我們在類的第一行的括號中指定CheckingAccount父類。
這表明super()允許您繼承所有值, Äã,Äã來自另一個班級。但是,在我們的代碼中,我們還聲明了一個名為 is_child 的新值。任何 ChildAccount 都無法訪問此值,因為它已在 ChildAccount 類中聲明
為孩子賬戶持有人創建一個我們的類的實例,我們可以使用這個代碼:
我們的代碼返回:
我們已經聲明了一個 ChildAccount 類的實例分配給 Python 變量 lynn。 lynn 是一個類對象,因為我們使用對象來聲明 lynn 的值。
Lynn 的帳戶有 200 美元,而 is_child 的值
em> 默認為 true。接下來,我們打印
name、
balance、
is_child 值與acc 的Lynn 姨媽有關。我們使用
print () Python 方法將這些值打印到控制台。
為什麼我們繼承name 和 balance 來自 CheckingAccount 類,我們可以在代碼中使用它們。但是,Lynn 的帳戶也有一組值 ‚Äã‚Äãfor is_child,默認情況下,ChildAccount 的所有實例都將其設置為 True。
super () Python:inherit Methods
super () 允許類使用單級繼承進行繼承——從父類繼承的類。或者您可以將 super () 與多級繼承一起使用。在本例中,我們將重點介紹使用 super () 的單級繼承。
在我們之前的示例中,我們使用 super() 來繼承值,存儲在 CheckingAccount 類中,並使它們可用於 ChildAccount 類。但是如果我們想從一個方法繼承並修改它的響應呢
返回到我們的 CheckingAccount 的任何類都從頭開始:
in這個類我們已經定義了類應該存儲的值的設計 - name 和 balance。我們定義了一個名為 Checkbalance() 的方法,它允許用戶檢查他們的餘額
現在假設我們想讓 Checkbalance () 可訪問我們的ChildAccount。我們還想打印一條消息“您有一個子帳戶!”它出現在用戶的餘額打印到控制台之前。
我們可以像這樣訪問我們繼承的方法:
我們已經聲明了一個新版本的 Checkbalance () 方法 ChildAccount 類。第一個版本顯示“你有一個子賬戶!”到控制台,所以我們的super()代碼用於母類的Checkbalance() .
在這種情況下,當super()。執行Checkbalance(),執行CheckingAccount類的Checkbalance()函數。它會在控制台上顯示用戶的餘額
現在我們將嘗試代表 Lynn 訪問我們的 Checkbalance () 方法。
我們的代碼返回:
當我們調用lynn.checkBalance()方法時,我們ChildAccount.checkBalance()方法中的代碼是race ,超級對象執行CheckingAccount.checkBalance()方法中的代碼。
super()函數允許我們使用父方法,而仍然能夠在我們的子類中覆蓋這些方法。
結論
Python super () 函數 允許您從父類繼承方法。 super () 函數可以幫助您編寫更具可讀性的代碼,因為您可以重用現有函數中的代碼。
本教程通過示例討論瞭如何使用 super () 函數.從父類繼承值、方法和方法。您現在已經掌握了開始使用 super () 函數的知識,就像 Python 專業人士一樣!
有關 Python 編程的更多資源,請閱讀我們的 Python 學習指南.