python super()函數(shù)的基本使用
super主要來(lái)調(diào)用父類(lèi)方法來(lái)顯示調(diào)用父類(lèi),在子類(lèi)中,一般會(huì)定義與父類(lèi)相同的屬性(數(shù)據(jù)屬性,方法),從而來(lái)實(shí)現(xiàn)子類(lèi)特有的行為。也就是說(shuō),子類(lèi)會(huì)繼承父類(lèi)的所有的屬性和方法,子類(lèi)也可以覆蓋父類(lèi)同名的屬性和方法。
class Parent(object): Value = 'Hi, Parent value' def fun(self): print('This is from Parent') # 定義子類(lèi),繼承父類(lèi)class Child(Parent): Value = 'Hi, Child value' def ffun(self): print('This is from Child') c = Child()c.fun()c.ffun()print(Child.Value) # 輸出結(jié)果# This is from Parent# This is from Child# Hi, Child value
但是,有時(shí)候可能需要在子類(lèi)中訪問(wèn)父類(lèi)的一些屬性,可以通過(guò)父類(lèi)名直接訪問(wèn)父類(lèi)的屬性,當(dāng)調(diào)用父類(lèi)的方法是,需要將”self”顯示的傳遞進(jìn)去的方式。
class Parent(object): Value = 'Hi, Parent value' def fun(self): print('This is from Parent') class Child(Parent): Value = 'Hi, Child value' def fun(self): print('This is from Child') # 調(diào)用父類(lèi)Parent的fun函數(shù)方法 Parent.fun(self) c = Child()c.fun() # 輸出結(jié)果# This is from Child# This is from Parent# 實(shí)例化子類(lèi)Child的fun函數(shù)時(shí),首先會(huì)打印上條的語(yǔ)句,再次調(diào)用父類(lèi)的fun函數(shù)方法
這種方式有一個(gè)不好的地方就是,需要經(jīng)父類(lèi)名硬編碼到子類(lèi)中,為了解決這個(gè)問(wèn)題,可以使用Python中的super關(guān)鍵字。
class Parent(object): Value = 'Hi, Parent value' def fun(self): print('This is from Parent') class Child(Parent): Value = 'Hi, Child value' def fun(self): print('This is from Child') # Parent.fun(self) # 相當(dāng)于用super的方法與上一調(diào)用父類(lèi)的語(yǔ)句置換 super(Child, self).fun() c = Child()c.fun() # 輸出結(jié)果# This is from Child# This is from Parent# 實(shí)例化子類(lèi)Child的fun函數(shù)時(shí),首先會(huì)打印上條的語(yǔ)句,再次調(diào)用父類(lèi)的fun函數(shù)方法
以上就是python super()函數(shù)的基本使用的詳細(xì)內(nèi)容,更多關(guān)于python super()函數(shù)的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. Android table布局開(kāi)發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器2. 理解PHP5中static和const關(guān)鍵字3. jQuery 實(shí)現(xiàn)DOM元素拖拽交換位置的實(shí)例代碼4. php模擬實(shí)現(xiàn)斗地主發(fā)牌5. IntelliJ IDEA安裝插件的方法步驟6. phpstorm恢復(fù)默認(rèn)設(shè)置的方法步驟7. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)8. Python random庫(kù)使用方法及異常處理方案9. Vuex localStorage的具體使用10. .Net Core使用Coravel實(shí)現(xiàn)任務(wù)調(diào)度的完整步驟

網(wǎng)公網(wǎng)安備