溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中多態(tài)的示例分析

發(fā)布時(shí)間:2022-03-04 14:38:46 來(lái)源:億速云 閱讀:149 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)python中多態(tài)的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

多態(tài)

多態(tài):顧名思義九四多種形態(tài)\狀態(tài),就是同一種行為對(duì)不同的子類[對(duì)象]有不同的行為表現(xiàn)
要想實(shí)現(xiàn)多態(tài) 必須有兩個(gè)前提需要遵守:
1.必須存在一種繼承關(guān)系,必須發(fā)生在父類和子類之間
2.重寫:子類重寫父類的方法
多態(tài)的優(yōu)點(diǎn):
多態(tài)可以增加程序的靈活性
增加程序的擴(kuò)展性
只要具備某種方法,無(wú)論繼承者是誰(shuí),定義者是誰(shuí),都可以去調(diào)用

python中多態(tài)的示例分析

python中多態(tài)的示例分析

案例演示

class Animal:
     def say_who(self):
         '''
         父類【基類】
         :return:
         '''
         print('你是一個(gè)動(dòng)物')
         pass
     pass
class Duck(Animal):
    '''
    繼承于animal這個(gè)類 鴨子類【子類】派生類
    '''
    def say_who(self):
        '''
        在這里重寫父類的方法
        :return:
        '''
        print('我是鴨鴨丫')
    pass
class Dog(Animal):
    def say_who(self):
        print('只是一只汪罷了')
        pass
    pass
 
duck1=Duck()
duck1.say_who()
dog=Dog()
dog.say_who()

python中多態(tài)的示例分析

class Animal:
     def say_who(self):
         '''
         父類【基類】
         :return:
         '''
         print('你是一個(gè)動(dòng)物')
         pass
     pass
class Duck(Animal):
    '''
    繼承于animal這個(gè)類 鴨子類【子類】派生類
    '''
    def say_who(self):
        '''
        在這里重寫父類的方法
        :return:
        '''
        print('我是鴨鴨丫')
    pass
class Dog(Animal):
    def say_who(self):
        print('只是一只汪罷了')
        pass
    pass
 # 使用統(tǒng)一的函數(shù)去調(diào)用
def commonInvoke(obj):
    '''
    同意調(diào)用的方法
    :param obj: 對(duì)象的實(shí)例
    :return:
    '''
    obj.say_who()
 # duck1=Duck()
# duck1.say_who()
# dog=Dog()
# dog.say_who()
 listObj=[Duck(),Dog()]
for item in listObj:
    '''
    循環(huán)調(diào)用函數(shù)
    '''
    commonInvoke(item)  #通過(guò)函數(shù)統(tǒng)一調(diào)用

python中多態(tài)的示例分析

增加新類完全無(wú)需修改代碼,只需將需要的代碼添加上就是了
# 案例演示
class Animal:
     def say_who(self):
         '''
         父類【基類】
         :return:
         '''
         print('你是一個(gè)動(dòng)物')
         pass
     pass
class Duck(Animal):
    '''
    繼承于animal這個(gè)類 鴨子類【子類】派生類
    '''
    def say_who(self):
        '''
        在這里重寫父類的方法
        :return:
        '''
        print('我是鴨鴨丫')
    pass
class Dog(Animal):
    def say_who(self):
        print('只是一只汪罷了')
        pass
    pass
class Bird(Animal):
    def say_who(self):
        print('門前大橋下,停著一只鳥')
# 使用統(tǒng)一的函數(shù)去調(diào)用
def commonInvoke(obj):
    '''
    同意調(diào)用的方法
    :param obj: 對(duì)象的實(shí)例
    :return:
    '''
    obj.say_who()
 # duck1=Duck()
# duck1.say_who()
# dog=Dog()
# dog.say_who()
 listObj=[Duck(),Dog(),Bird()]
for item in listObj:
    '''
    循環(huán)調(diào)用函數(shù)
    '''
    commonInvoke(item)  #通過(guò)函數(shù)統(tǒng)一調(diào)用

python中多態(tài)的示例分析

關(guān)于“python中多態(tài)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI