码迷,mamicode.com
首页 > 编程语言 > 详细

Python多态和多态性

时间:2018-05-11 20:02:12      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:自己   rac   tac   col   hello   article   情况下   htm   people   

引用于: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多态和多态性

标签:自己   rac   tac   col   hello   article   情况下   htm   people   

原文地址:https://www.cnblogs.com/linshuhui/p/9025821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!