您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python中多態的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
多態:顧名思義九四多種形態\狀態,就是同一種行為對不同的子類[對象]有不同的行為表現
要想實現多態 必須有兩個前提需要遵守:
1.必須存在一種繼承關系,必須發生在父類和子類之間
2.重寫:子類重寫父類的方法
多態的優點:
多態可以增加程序的靈活性
增加程序的擴展性
只要具備某種方法,無論繼承者是誰,定義者是誰,都可以去調用
class Animal: def say_who(self): ''' 父類【基類】 :return: ''' print('你是一個動物') pass pass class Duck(Animal): ''' 繼承于animal這個類 鴨子類【子類】派生類 ''' 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('你是一個動物') pass pass class Duck(Animal): ''' 繼承于animal這個類 鴨子類【子類】派生類 ''' def say_who(self): ''' 在這里重寫父類的方法 :return: ''' print('我是鴨鴨丫') pass class Dog(Animal): def say_who(self): print('只是一只汪罷了') pass pass # 使用統一的函數去調用 def commonInvoke(obj): ''' 同意調用的方法 :param obj: 對象的實例 :return: ''' obj.say_who() # duck1=Duck() # duck1.say_who() # dog=Dog() # dog.say_who() listObj=[Duck(),Dog()] for item in listObj: ''' 循環調用函數 ''' commonInvoke(item) #通過函數統一調用
增加新類完全無需修改代碼,只需將需要的代碼添加上就是了
# 案例演示 class Animal: def say_who(self): ''' 父類【基類】 :return: ''' print('你是一個動物') pass pass class Duck(Animal): ''' 繼承于animal這個類 鴨子類【子類】派生類 ''' 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('門前大橋下,停著一只鳥') # 使用統一的函數去調用 def commonInvoke(obj): ''' 同意調用的方法 :param obj: 對象的實例 :return: ''' obj.say_who() # duck1=Duck() # duck1.say_who() # dog=Dog() # dog.say_who() listObj=[Duck(),Dog(),Bird()] for item in listObj: ''' 循環調用函數 ''' commonInvoke(item) #通過函數統一調用
關于“python中多態的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。