python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

本文內容主要介紹了python 子類調用父類的構造函數實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧!!!

當子類繼承父類後,需要調用父類的方法和屬性時,需要調用父類的初始化函數

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

在子類中重寫了構造函數,但新的構造函數沒有初始化父類,當沒有初始化父類的構造函數時,就會報錯。

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

(1)調用超類的構造方法

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

(2)使用super函數

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

(2)使用super函數

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

super函數返回一個super對象,解析過程自動查找所有的父類和父類的父類,當前類和對象可以作為super函數的參數使用,調用函數返回的方法是超類的方法。使用super函數如果子類繼承多個父類只許一次繼承,使用一次super函數即可。

如果沒有重寫子類的構造函數,是可以直接使用父類的屬性和方法的。

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

補充知識:python3 和python2 調用父類構造方法寫法區別

1. python3 和python2 調用父類構造方法寫法區別

前一段時間,把之前的一個項目遷移到python3

發現了很多不同的地方.我這裡簡單說明了,構造方法的不同 之後可能會繼續更新不同. 主要針對項目遷移進行總結,反思. 這裡就當做筆記。

python3 代碼 調用父類的構造方法:

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

2 python2.7 調用父類的構造方法

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

python 子類如何調用父類的構造函數?(大牛實例代碼詳細教學)

區別

主要區別是 super 的變化,

python3 中直接 super().init() 中 super 不需要傳遞任何參數,直接可以調用父類的構造方法

python2 中 super(Consumer, self).init(), 需要傳兩個參數一個是類名, 一個是self. 這樣比較麻煩,很容易混淆. 但是python3 這裡處理的比較好了。

可以看下這個文檔 https://docs.python.org/3/library/functions.html#super

順便提一下, python2 和python3 中 quque 名稱換了,python3 用的是小寫 作為模塊名稱.

以上這篇python 子類調用父類的構造函數實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望對各位的學習有所幫助!!!

結尾

最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,並在後臺私信小編:“07”即可領取。


分享到:


相關文章: