您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)python中多態(tài)的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
多態(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)用
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()
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)用
增加新類完全無(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)用
關(guān)于“python中多態(tài)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(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)容。