子類調(diào)用父類函數(shù)有以下方法:
目前成都創(chuàng)新互聯(lián)已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、臨沂網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
直接寫類名調(diào)用
用 super(type, obj).method(arg)方法調(diào)用。
在類定義中調(diào)用本類的父類方法,可以直接用super().method(arg)
class A:
def method(self, arg):
pass
class B(A):
def method(self, arg):
# A.method(self,arg) # 1
# super(B, self).method(arg) # 2
super().method(arg) # 3
既然"Demo類當(dāng)中又調(diào)用了Quitter",自然Quitter(self)中self是指Demo對(duì)象自身。
運(yùn)行時(shí)會(huì)調(diào)用Quitter的構(gòu)造方法def __init__(self, parent=None),此時(shí)注意剛剛傳入的Demo對(duì)象會(huì)賦給parent變量(注意不是self變量,而是第二個(gè)變量parent,因?yàn)閜ython class方法的第一個(gè)參數(shù)都是self,用于指代該類自身對(duì)象而非傳入?yún)?shù))
這種設(shè)計(jì)潛在含義是:Demo是父,Quitter是Demo的子。由父調(diào)用子,并把自身以參數(shù)形式傳給子。
別人的是多態(tài),也就是大家都從一個(gè)接口繼承,然后子類對(duì)象可以當(dāng)父類用,你這個(gè)父類都不知道誰繼承了它,怎么調(diào)用子類方法?你這個(gè)思路不太對(duì)勁的。
在學(xué)習(xí)類的繼承時(shí),被“在子類中調(diào)用和修改父類的屬性”卡住了。通過在網(wǎng)上查閱資料,大致搞明白了。主要有以下三點(diǎn):
1. 子類的 __init__ 方法中通過“ 父類名.__init__(self) ”語句將父類的屬性繼承過來,見下面示例中標(biāo)注“#例2”處。
2. 如果要在程序中調(diào)用子類時(shí)直接通過參數(shù)的形式修改父類繼承過來的屬性,那么子類的 __init__ 方法中需要在self后面跟上要賦值的參數(shù),見下面示例中標(biāo)注“#例1”處。
3. 即使是通過“ 父類名.__init__(self) ”語句繼續(xù)過來的父類的屬性,也需要在子類的 __init__ 方法中使用 self.變量名=變量值 的方式進(jìn)行賦值,否則在子類中無法引用變量,見下面示例中標(biāo)注“#例3”和“#例4”處。
執(zhí)行結(jié)果:
從以上執(zhí)行結(jié)果看,我們通過 y=b(4,5) 方式直接調(diào)用子類并給出參數(shù)“4,5”,而使用 y.myprint 調(diào)用了父類的方法,最后的計(jì)算結(jié)果是根據(jù)子類的參數(shù)計(jì)算得出的。說明我們?cè)谡{(diào)用子類時(shí)直接修改了父類aa和bb的屬性。
這是類的繼承問題。先說一下,對(duì)于python來說定義函數(shù)要用def來定義,沒有這個(gè)關(guān)鍵字無法定義函數(shù)。
然后通常,如果父類中有調(diào)用self.a,那么這個(gè)就是類的屬性,也就是說,子類中自然存在。直接在子類中直接調(diào)用即可,如果在父類中只定義了一個(gè)局部變量,那么子類是獲取不到的。不過可以定義類方法,直接調(diào)用類方法獲取你想要的值。
方法1.
class A: def get_A(self): self.a=1 print(self.a)class B(A): def get_B(self):#self不是python關(guān)鍵字,建議類方法用self作為第一個(gè)參數(shù) self.get_A()if __name__ == '__main__':b = B()b.get_B()
分享標(biāo)題:python調(diào)用子類函數(shù),怎么調(diào)用子類中的函數(shù)
文章起源:http://aaarwkj.com/article28/dsshocp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、關(guān)鍵詞優(yōu)化、ChatGPT、建站公司、電子商務(wù)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)