濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Python基礎(chǔ)知識(shí)學(xué)習(xí)之類的繼承

Python基礎(chǔ)知識(shí)學(xué)習(xí)之類的繼承

熱門標(biāo)簽:小蘇云呼電話機(jī)器人 朝陽(yáng)手機(jī)外呼系統(tǒng) 北京電銷外呼系統(tǒng)加盟 地圖標(biāo)注面積 北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 儋州電話機(jī)器人 市場(chǎng)上的電銷機(jī)器人 佛山400電話辦理

一、繼承的格式

類的繼承格式如下,括號(hào)中的為父類名。

class 類名(父類名):
 代碼

二、單繼承

下面我們讓Man繼承自Master類,并調(diào)用繼承的showSkill方法。

class Master():
    def __init__(self):
        self.skill='炒菜'
    def showSkill(self):
        print(self.skill)

class Man(Master):
    pass

man=Man()
man.showSkill()

炒菜

三、多繼承

我們可以在括號(hào)中寫入多個(gè)父類,并用逗號(hào)隔開(kāi),就可以表示多繼承。
需要注意的是,如果父類中有同名的方法或?qū)傩员蛔宇惱^承,子類優(yōu)先繼承第一個(gè)父類的方法。

'''
測(cè)試python多繼承
多繼承時(shí),若父類有同名的屬性或方法,則優(yōu)先繼承先繼承的父類
'''

class Master():
    def __init__(self):
        self.skill='炒菜'
    def showSkill(self):
        print(self.skill)

class Bagger():
    def __init__(self):
        self.skill='乞討'
    def showSkill(self):
        print(self.skill)

class Man(Master,Bagger):
    pass

man=Man()
man.showSkill()

炒菜

四、重寫父類方法

python中重寫父類方法不需要override等任何的關(guān)鍵字,直接把原來(lái)的方法重寫一遍就好。

class Master():
    def __init__(self):
        self.skill='炒菜'
        print("Master初始化完畢")
    def showSkill(self):
        print(self.skill)

class Bagger():
    def __init__(self):
        self.skill='乞討'
        print("Bagger初始化完畢")
    def showSkill(self):
        print(self.skill)

#重寫父類的方法
class Man(Master,Bagger):
    #重寫__init__方法時(shí),并不會(huì)調(diào)用父類的__init方法
    def __init__(self):
        #重寫父類的屬性skill
        self.skill='飛天'
    def showSkill(self):
        print("我的技能是:"+self.skill)

man=Man()
man.showSkill()

我的技能是:飛天

五、打印繼承關(guān)系

通過(guò)__mro__()方法我們可以得到當(dāng)前類繼承的所有類。

class Master():
    def __init__(self):
        self.skill='炒菜'
    def showSkill(self):
        print(self.skill)

class Bagger(Master):
    pass

class Man(Bagger):
    pass

man=Man()
print(Man.__mro__)

六、調(diào)用父類方法

我們可以通過(guò)super().方法名,來(lái)調(diào)用父類中的 方法,哪怕該方法在子類中被重寫了。

class Master():
    def __init__(self):
        self.skill='炒菜'
    def showSkill(self):
        print(self.skill)

class Man(Master):
    def __init__(self):
        self.skill='吃飯'
    def showSkill(self):
        print(self.skill)
        super().__init__()
        super().showSkill()

man=Man()
man.showSkill()

吃飯
炒菜

七、私有屬性與方法

我們可以在方法或?qū)傩悦凹由?__ 來(lái)表示私有,在類的繼承中,只有父類的私有方法無(wú)法被繼承,其他屬性與方法都將被繼承,但私有屬性不能在子類中直接訪問(wèn),但我們可以同過(guò)繼承的父類公有方法來(lái)對(duì)其訪問(wèn)。
下面我們定義私有屬性money,并創(chuàng)建共有方法set_money與get_money從子類中對(duì)其進(jìn)行訪問(wèn)。

class Master():
    #在屬性或方法面前加__,表示訪問(wèn)權(quán)限為私有
    __money=100000
    def __init__(self):
        pass
    #設(shè)置為私有方法,無(wú)法被繼承
    def __showMoney(self):
        print(self.__money)
    #使子類可以通過(guò)共有方法訪問(wèn)私有屬性
    def get_money(self):
        return self.__money
    def set_money(self,money):
        self.__money=money

class Man(Master):
    pass

man=Man()
print("原來(lái)的money:"+man.get_money().__str__())
man.set_money(12)
print("后來(lái)的money:"+man.get_money().__str__())

原來(lái)的money:100000
后來(lái)的money:12

到此這篇關(guān)于Python基礎(chǔ)知識(shí)學(xué)習(xí)之類的繼承的文章就介紹到這了,更多相關(guān)python類的繼承內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python編寫接口測(cè)試文檔(以豆瓣搜索為例)
  • Python3接口性能測(cè)試實(shí)例代碼
  • python面向?qū)ο笾惖睦^承詳解
  • Python正確重載運(yùn)算符的方法示例詳解
  • python接口,繼承,重載運(yùn)算符詳解

標(biāo)簽:定西 云南 龍巖 江蘇 酒泉 寧夏 金融催收 商丘

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python基礎(chǔ)知識(shí)學(xué)習(xí)之類的繼承》,本文關(guān)鍵詞  Python,基礎(chǔ),知識(shí)學(xué)習(xí),之類,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python基礎(chǔ)知識(shí)學(xué)習(xí)之類的繼承》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python基礎(chǔ)知識(shí)學(xué)習(xí)之類的繼承的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    富阳市| 富裕县| 衡水市| 东明县| 遂宁市| 筠连县| 长宁县| 宝丰县| 苍南县| 平陆县| 南安市| 绍兴县| 曲松县| 全椒县| 当雄县| 新疆| 麦盖提县| 怀仁县| 濮阳县| 芮城县| 高州市| 铜梁县| 富蕴县| 翁牛特旗| 德阳市| 南澳县| 旬阳县| 丰宁| 隆林| 鄂托克前旗| 琼海市| 临澧县| 鄢陵县| 长岛县| 土默特左旗| 兰西县| 商都县| 普安县| 迁安市| 凤山市| 霍州市|