欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python多繼承時(shí)子類如何調(diào)用指定父類

 更新時(shí)間:2024年06月13日 10:42:26   作者:彭世瑜  
這篇文章主要介紹了Python多繼承時(shí)子類如何調(diào)用指定父類問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python多繼承時(shí)子類調(diào)用指定父類

在Python中,如果一個(gè)子類繼承自多個(gè)父類,并且這些父類都有相同名稱的方法,你可以使用父類名直接調(diào)用指定父類的方法。

# -*- coding: utf-8 -*-

class Parent1:
    def my_method(self):
        print("Parent1's my_method")


class Parent2:
    def my_method(self):
        print("Parent2's my_method")


class Child(Parent1, Parent2):
    def call_parent1_method(self):
        Parent1.my_method(self)


if __name__ == '__main__':
    c = Child()
    c.call_parent1_method()  # 輸出: Parent1's my_method

在上面的例子中,Child 類同時(shí)繼承了 Parent1 和 Parent2。

如果你需要在 Child 的實(shí)例方法中調(diào)用 Parent1 的 my_method,你可以直接使用 Parent1.my_method(self) 來調(diào)用。

這里的 self 是用來指向子類實(shí)例的,確保方法可以訪問到實(shí)例的屬性。

Python子類繼承父類構(gòu)造函數(shù)說明

(1) 如果在子類中需要的構(gòu)造方法就需要顯示的調(diào)用父類的構(gòu)造方法,或者不重寫父類的構(gòu)造方法。

子類不重寫__init__,實(shí)例化子類時(shí),會(huì)自動(dòng)調(diào)用父類定義的__init__。

實(shí)例:

class Father(object):
    def __init__(self, age):
        self.age=age
        print ( "age: %d" %( self.age) )
    def getAge(self):
        print('父類的返回結(jié)果')
        return self.age
 
class Son(Father):
    def getAge(self):
        print('子類的返回結(jié)果:')
        return self.age
 
if __name__=='__main__':
    son=Son(18)
    print ( son.getAge() )

輸出結(jié)果:

age: 18
子類的返回結(jié)果:
18

子類沒有初始化__init__ 方法,所以默認(rèn)會(huì)自動(dòng)調(diào)用父類定義的__init__,因此會(huì)出現(xiàn)一行:age: 18

(2)如果重寫了__init__ 時(shí),實(shí)例化子類,就不會(huì)調(diào)用父類已經(jīng)定義的 __init__

實(shí)例

class Father(object):
    def __init__(self, age):
        self.age=age
        print ( "age: %d" %( self.age) )
    def getAge(self):
        return self.age
 
class Son(Father):
    def __init__(self, age):
        print ( "hello world" )
        self.age =  age
    def getAge(self):
        return self.age
 
if __name__=='__main__':
    son=Son(18)
    print (son.getAge() )

輸出結(jié)果:

hello world
18

子類有初始化__init__ 方法,則會(huì)調(diào)用自身的初始化方法,因此不會(huì)出現(xiàn)上面實(shí)例中那樣的:age: 18

(3)如果重寫了__init__時(shí),要繼承父類的構(gòu)造方法,可以使用super關(guān)鍵字:

super(子類,self).__init__(參數(shù)1,參數(shù)2,....)

或者另一種經(jīng)典的方法:

父類名稱.__init__(self,參數(shù)1,參數(shù)2,...)

實(shí)例:

class Father(object):
    def __init__(self, age):
        self.age=age
        print ( "name: %s" %( self.age))
    def getage(self):
        return self.age
 
class Son(Father):
    def __init__(self, age):
#         super(Son, self).__init__(age)  # 1:super方法
        Father.__init__(self,age)         # 2: 經(jīng)典方法
        print ("hello world")
        self.age =  age
    def getage(self):
        return self.age
 
if __name__=='__main__':
    son=Son(18)
    print ( son.getage() )

輸出結(jié)果:

name: 18
hello world
18

可以看到,會(huì)出現(xiàn)父類中的初始化輸出結(jié)果: name: 18,也會(huì)出現(xiàn)子類初始化中輸出結(jié)果:hello world

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談python為什么不需要三目運(yùn)算符和switch

    淺談python為什么不需要三目運(yùn)算符和switch

    下面小編就為大家?guī)硪黄獪\談python為什么不需要三目運(yùn)算符和switch。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Windows64x下VScode下載過程

    Windows64x下VScode下載過程

    這篇文章主要介紹了Windows64x下VScode下載,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • python實(shí)現(xiàn)不同電腦之間視頻傳輸功能

    python實(shí)現(xiàn)不同電腦之間視頻傳輸功能

    這篇文章主要介紹了python實(shí)現(xiàn)不同電腦之間視頻傳輸,本文視頻傳輸實(shí)現(xiàn)的前提是確保發(fā)送端和接收端接在同一個(gè)局域網(wǎng)下,分為發(fā)送端和接收端,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-06-06
  • python3讀取autocad圖形文件.py實(shí)例

    python3讀取autocad圖形文件.py實(shí)例

    這篇文章主要介紹了python3讀取autocad圖形文件.py實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 使用Python搭建虛擬環(huán)境的配置方法

    使用Python搭建虛擬環(huán)境的配置方法

    python 的虛擬環(huán)境可以為一個(gè) python 項(xiàng)目提供獨(dú)立的解釋環(huán)境、依賴包等資源,既能夠很好的隔離不同項(xiàng)目使用不同 python 版本帶來的沖突,而且還能方便項(xiàng)目的發(fā)布。這篇文章主要介紹了使用Python虛擬環(huán)境,需要的朋友可以參考下
    2018-02-02
  • python爬蟲爬取快手視頻多線程下載功能

    python爬蟲爬取快手視頻多線程下載功能

    這篇文章主要介紹了python爬蟲爬取快手視頻多線程下載功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 在Python中關(guān)于使用os模塊遍歷目錄的實(shí)現(xiàn)方法

    在Python中關(guān)于使用os模塊遍歷目錄的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇在Python中關(guān)于使用os模塊遍歷目錄的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python cookbook(字符串與文本)在字符串的開頭或結(jié)尾處進(jìn)行文本匹配操作

    Python cookbook(字符串與文本)在字符串的開頭或結(jié)尾處進(jìn)行文本匹配操作

    這篇文章主要介紹了Python cookbook(字符串與文本)在字符串的開頭或結(jié)尾處進(jìn)行文本匹配操作,涉及Python使用str.startswith()和str.endswith()方法針對字符串開始或結(jié)尾處特定文本匹配操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-04-04
  • python執(zhí)行shell并獲取結(jié)果的詳細(xì)示例

    python執(zhí)行shell并獲取結(jié)果的詳細(xì)示例

    在Python中執(zhí)行Shell命令并獲取其結(jié)果,通??梢允褂胹ubprocess模塊,這個(gè)模塊允許我們啟動(dòng)新的進(jìn)程,連接到它們的輸入/輸出/錯(cuò)誤管道,并獲取它們的返回碼,下面是一個(gè)詳細(xì)的示例,展示了如何使用subprocess.run()函數(shù)來執(zhí)行Shell命令并獲取其輸出,需要的朋友可以參考下
    2024-07-07
  • 深入解析python中的實(shí)例方法、類方法和靜態(tài)方法

    深入解析python中的實(shí)例方法、類方法和靜態(tài)方法

    這篇文章主要介紹了python中的實(shí)例方法、類方法和靜態(tài)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論