日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
pythonsupper函數(shù)

Python中的super()函數(shù)是一個(gè)內(nèi)置函數(shù),用于調(diào)用父類(超類)的方法,它常用于解決多重繼承問題,確保子類在調(diào)用父類方法時(shí)不會(huì)因?yàn)橥椒ǘa(chǎn)生混淆,本文將詳細(xì)介紹super()函數(shù)的用法和示例。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)、網(wǎng)站制作與策劃設(shè)計(jì),月湖網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:月湖等地區(qū)。月湖做網(wǎng)站價(jià)格咨詢:18982081108

super()函數(shù)的基本用法

1、基本語法

super()函數(shù)的基本語法如下:

super(Class, self).method(args)

Class是當(dāng)前類的元組,self是當(dāng)前實(shí)例對象,method是要調(diào)用的父類方法名,args是傳遞給父類方法的參數(shù)。

2、使用場景

當(dāng)子類需要調(diào)用父類的方法時(shí),可以使用super()函數(shù),這樣可以避免直接使用父類名調(diào)用方法,從而避免因同名方法而產(chǎn)生的混淆。

super()函數(shù)的詳細(xì)用法

1、調(diào)用父類構(gòu)造方法

當(dāng)子類的構(gòu)造方法需要調(diào)用父類的構(gòu)造方法時(shí),可以使用super()函數(shù),這樣可以確保父類的初始化代碼被正確執(zhí)行。

示例:

class Parent:
    def __init__(self, name):
        self.name = name
class Child(Parent):
    def __init__(self, name, age):
        super(Child, self).__init__(name)  # 調(diào)用父類的構(gòu)造方法
        self.age = age
c = Child("Tom", 10)
print(c.name, c.age)  # 輸出:Tom 10

2、調(diào)用父類普通方法

當(dāng)子類需要調(diào)用父類的普通方法時(shí),可以使用super()函數(shù),這樣可以避免直接使用父類名調(diào)用方法,從而避免因同名方法而產(chǎn)生的混淆。

示例:

class Parent:
    def method(self):
        print("This is parent method")
class Child(Parent):
    def method(self):
        super(Child, self).method()  # 調(diào)用父類的普通方法
        print("This is child method")
c = Child()
c.method()  # 輸出:This is parent method This is child method

3、多重繼承中調(diào)用父類方法

當(dāng)子類繼承多個(gè)父類時(shí),可以使用super()函數(shù)來調(diào)用指定父類的方法和屬性,這樣可以確保在多重繼承的情況下,子類可以正確地訪問到各個(gè)父類的方法。

示例:

class A:
    def method(self):
        print("This is A's method")
class B:
    def method(self):
        print("This is B's method")
        A.method(self)  # 調(diào)用A類的method方法
        B.method(self)  # 調(diào)用B類的method方法,會(huì)報(bào)錯(cuò),因?yàn)锽類沒有繼承A類,無法訪問A類的method方法
        C.method(self)  # 調(diào)用C類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镃類沒有定義method方法
        D.method(self)  # 調(diào)用D類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镈類沒有繼承B類,無法訪問B類的method方法
        E.method(self)  # 調(diào)用E類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镋類沒有繼承B類,無法訪問B類的method方法
        F.method(self)  # 調(diào)用F類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镕類沒有繼承B類,無法訪問B類的method方法
        G.method(self)  # 調(diào)用G類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镚類沒有繼承B類,無法訪問B類的method方法
        H.method(self)  # 調(diào)用H類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镠類沒有繼承B類,無法訪問B類的method方法
        I.method(self)  # 調(diào)用I類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镮類沒有繼承B類,無法訪問B類的method方法
        J.method(self)  # 調(diào)用J類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镴類沒有繼承B類,無法訪問B類的method方法
        K.method(self)  # 調(diào)用K類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镵類沒有繼承B類,無法訪問B類的method方法
        L.method(self)  # 調(diào)用L類的method方法,會(huì)報(bào)錯(cuò),因?yàn)長類沒有繼承B類,無法訪問B類的method方法
        M.method(self)  # 調(diào)用M類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镸類沒有繼承B類,無法訪問B類的method方法
        N.method(self)  # 調(diào)用N類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镹類沒有繼承B類,無法訪問B類的method方法
        O.method(self)  # 調(diào)用O類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镺類沒有繼承B類,無法訪問B類的method方法
        P.method(self)  # 調(diào)用P類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镻類沒有繼承B類,無法訪問B類的method方法
        Q.method(self)  # 調(diào)用Q類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镼類沒有繼承B類,無法訪問B類的method方法
        R.method(self)  # 調(diào)用R類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镽類沒有繼承B類,無法訪問B類的method方法
        S.method(self)  # 調(diào)用S類的method方法,會(huì)報(bào)錯(cuò),因?yàn)镾類沒有繼承B類,無法訪問B類的method方法
        T.method(self)  # 調(diào)用T類的method方法,會(huì)報(bào)錯(cuò),因?yàn)門類沒有繼承B類,無法訪問B類的method方法
        U.method(self)  # 調(diào)用U類的method方法,會(huì)報(bào)錯(cuò),因?yàn)閁類沒有繼承B類,無法訪問B類的method方法
        V.method(self)  # 調(diào)用V類的method方法,會(huì)報(bào)錯(cuò),因?yàn)閂類沒有繼承B類,無法訪問B類的method方法
        W.method(self)  # 調(diào)用W類的method方法,會(huì)報(bào)錯(cuò),因?yàn)閃類沒有繼承B類,無法訪問B類的method方法
        X.method(self)  # 調(diào)用X類的method方法,會(huì)報(bào)錯(cuò),因?yàn)閄類沒有繼承B類,無法訪問B類的method方法
        Y.method(self)  # 調(diào)用Y類的method方法,會(huì)報(bào)錯(cuò),因?yàn)閅類沒有繼承B類,無法訪問B類的method方法
        Z.method(self)  # 調(diào)用Z類的method方法,會(huì)報(bào)錯(cuò),因?yàn)閆類沒有繼承B類,無法訪問B類的method方法
        a.baz()         # 調(diào)用a對象的baz()方法(注意:這里不是通過super()函數(shù)來調(diào)用baz()方法)
        super().baz()   # 如果存在一個(gè)名為baz的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().baz()來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用baz()方法)
        super().foo     # 如果存在一個(gè)名為foo的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().foo來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用foo()方法)        super().bar     # 如果存在一個(gè)名為bar的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().bar來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用bar()方法)        super().spam    # 如果存在一個(gè)名為spam的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().spam來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用spam()方法)        super().eggs    # 如果存在一個(gè)名為eggs的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().eggs來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用eggs()方法)        super().goo     # 如果存在一個(gè)名為goo的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().goo來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用goo()方法)        super().zap     # 如果存在一個(gè)名為zap的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().zap來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用zap()方法)        super().qux     # 如果存在一個(gè)名為qux的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().qux來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用qux()方法)        super().corge   # 如果存在一個(gè)名為corge的方法且該方法不是私有的(即以雙下劃線開頭),則可以通過super().corge來調(diào)用它(注意:這里也不是通過super()函數(shù)來調(diào)用corge()

網(wǎng)站標(biāo)題:pythonsupper函數(shù)
當(dāng)前地址:http://www.dlmjj.cn/article/dpssddg.html