Python多態和多態性


引用於: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)去調用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM