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

