python3中的類繼承你真的了解嗎
之前一直對于python類的繼承機(jī)制認(rèn)知的比較混亂,今天學(xué)習(xí)記錄一下。
(1)首先使用直接繼承的方式
class parent(): def __init__(self): self.a="這是父類a" print("父類初始化") def fuc(self): print(self.a) class child(parent): def __init__(self): print("子類初始化") c=child() c.fuc()
運(yùn)行結(jié)果為:
子類初始化
AttributeError: 'child' object has no attribute 'a'
Process finished with exit code 1
可見子類沒有繼承父類中屬性
(2)在子類中定義屬性
class parent(): def __init__(self): self.a="這是父類a" print("父類初始化") def fuc(self): print(self.a) class child(parent): def __init__(self): self.a="這是子類a" print("子類初始化") c=child() c.fuc()
運(yùn)行結(jié)果:
子類初始化
這是子類a
可見在子類中繼承了父類的方法
(3)如果想要繼承父類中的屬性,一般使用super方法:
class parent(): def __init__(self): self.a="這是父類a" print("父類初始化") def fuc(self): print(self.a) class child(parent): def __init__(self): super(child, self).__init__() print("子類初始化") c=child() c.fuc()
運(yùn)行結(jié)果:
父類初始化
子類初始化
這是父類a
使用super方法程序在實(shí)例化子類的時(shí)候會首先調(diào)用父類中__init__,并將屬性賦予子類
(4)如果需要在子類的__init__中傳入?yún)?shù)則可以這樣使用:
class parent(): def __init__(self): self.a="這是父類a" print("父類初始化") def fuc(self): print(self.a) class child(parent): def __init__(self,m): super(child, self).__init__() print("子類初始化") self.m=m c=child(1) print(c.m)
運(yùn)行結(jié)果:
父類初始化
子類初始化
1
(5)如果想要將參數(shù)傳入到父類中可以這樣使用:
class parent(): def __init__(self,m): self.a="這是父類a" print("父類初始化") self.m = m def fuc(self): print(self.m) class child(parent): def __init__(self,m): super(child, self).__init__(m) print("子類初始化") c=child(1) c.fuc()
運(yùn)行結(jié)果:
父類初始化
子類初始化
1
當(dāng)子類中與父類中有同樣的屬性時(shí)子類中的屬性會覆蓋父類的屬性
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
用Python進(jìn)行數(shù)據(jù)清洗以及值處理
這篇文章主要介紹了用Python進(jìn)行數(shù)據(jù)清洗以及值處理,數(shù)據(jù)分析中,數(shù)據(jù)清洗是一個(gè)必備階段。數(shù)據(jù)分析所使用的數(shù)據(jù)一般都很龐大,致使數(shù)據(jù)不可避免的出現(xiàn)重復(fù)、缺失、異常值等異常數(shù)據(jù),如果忽視這些異常數(shù)據(jù),可能導(dǎo)致分析結(jié)果的準(zhǔn)確性,需要的朋友可以參考下2023-07-07Python 列表(List) 的三種遍歷方法實(shí)例 詳解
這篇文章主要介紹了Python 列表(List) 的三種遍歷方法實(shí)例 詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04PyQt QListWidget修改列表項(xiàng)item的行高方法
今天小編就為大家分享一篇PyQt QListWidget修改列表項(xiàng)item的行高方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06keras 多任務(wù)多l(xiāng)oss實(shí)例
這篇文章主要介紹了keras 多任務(wù)多l(xiāng)oss實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python 逆向爬蟲正確調(diào)用 JAR 加密邏輯
這篇文章主要介紹了python 逆向爬蟲正確調(diào)用 JAR 加密邏輯,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01Python中字符串格式化str.format的詳細(xì)介紹
python從2.6開始支持format,新的更加容易讀懂的字符串格式化方法,下面這篇文章主要介紹了Python中字符串格式化str.format的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02python訪問mysql數(shù)據(jù)庫的實(shí)現(xiàn)方法(2則示例)
這篇文章主要介紹了python訪問mysql數(shù)據(jù)庫的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了兩種Python操作MySQL數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-01-01