1. 程式人生 > >Python多態和多態性

Python多態和多態性

meta 更改 www. html TP nbsp 不變 spa 自己的

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

Python多態和多態性