python基礎(chǔ)之多態(tài)
多態(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ò)展性
只要具備某種方法,無論繼承者是誰,定義者是誰,都可以去調(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) #通過函數(shù)統(tǒng)一調(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 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) #通過函數(shù)統(tǒng)一調(diào)用
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python OpenCV 實(shí)現(xiàn)高斯濾波詳解
這篇文章主要介紹了Python+OpenCV 實(shí)現(xiàn)高斯濾波的過程,關(guān)于高斯濾波的解釋,它是一種線性平滑濾波,適用于消除高斯噪聲,具體實(shí)現(xiàn)過程跟隨小編一起看看吧2021-10-10Python實(shí)現(xiàn)克里金插值法的過程詳解
克里金算法提供的半變異函數(shù)模型有高斯、線形、球形、阻尼正弦和指數(shù)模型等,在對(duì)氣象要素場(chǎng)插值時(shí)球形模擬比較好。本文將用Python實(shí)現(xiàn)克里金插值法,感興趣的可以了解一下2022-11-11如何通過python實(shí)現(xiàn)IOU計(jì)算代碼實(shí)例
這篇文章主要介紹了如何通過python實(shí)現(xiàn)IOU計(jì)算代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11何用Python實(shí)現(xiàn)一個(gè) “系統(tǒng)聲音” 的實(shí)時(shí)律動(dòng)掛件
這篇文章將給大家介紹了如何用 Python 實(shí)現(xiàn)一個(gè) “系統(tǒng)聲音” 的實(shí)時(shí)律動(dòng)掛件,采集后直接實(shí)時(shí)地在電腦上繪制波形動(dòng)畫,主要是用來作為 FL Studio 播放時(shí)的一個(gè)桌面小掛件,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-01-01