引用於:http://www.cnblogs.com/linhaifeng/articles/7340687.html
Python中多態是指一類事物有多種形態。比如動物有多種形態,人,狗,貓,等等。
import abc class Animal(metaclass=abc.ABCMeta): #同一類事物:動物 @abc.abstractmethod def talk(self): pass class People(Animal): #動物的形態之一:人 def talk(self): print('say hello') class Dog(Animal): #動物的形態之二:狗 def talk(self): print('say wangwang') class Pig(Animal): #動物的形態之三:豬 def talk(self): print('say aoao')
Python的多態性是指:在不考慮實例類型的情況下使用實例,也就是說不同類型的實例有 相同的調用方法。比如人,貓,狗,等等只要是繼承了animal就可以直接調用它的talk()方法。
peo=People() dog=Dog() pig=Pig() #peo、dog、pig都是動物,只要是動物肯定有talk方法 #於是我們可以不用考慮它們三者的具體是什么類型,而直接使用 peo.talk() dog.talk() pig.talk() #更進一步,我們可以定義一個統一的接口來使用 def func(obj): obj.talk()
使用多態性的好處:
1.增加了程序的靈活性 以不變應萬變,不論對象千變萬化,使用者都是同一種形式去調用,如func(animal) 2.增加了程序額可擴展性 通過繼承animal類創建了一個新的類,使用者無需更改自己的代碼,還是用func(animal)去調用