以动物吃东西为例子,讲述由python实现的参数传递实现的多态

#实现一个父类,虚构的动物类,并实现一个空的Eat方法
class Animal(object):
    def __init__(self):
        pass
    def Eat(self):
        pass
class Chicken(Animal):
    def __init__(self):
        super(Chicken, self).__init__()
    def Eat(self):
        print 'the chicken has been eat'
class Dog(Animal):
    def __init__(self):
        super(Dog, self).__init__()
    def Eat(self):
        print 'the dog has been eat'
#实现一个调用的方法,这里也用类来实现吧
class Person(object):
    def __init__(self,name):
        self.name = name
    def Feed(self, ped):
        ped.Eat()
if __name__ == '__main__':
    Kobe = Person('Kobe')#给调用者取个名字吧
    pedChicken = Chicken()#建立一个小鸡宠物
    pedDog = Dog()#建立一个小狗宠物
    Kobe.Feed(PedChicken)#Feed方法根据传入的参数不同调用
    Kobe.Feed(pedDog)
这样就形成了,Feed方法不关心Eat方法实现的细节,只需要通过参数来确定调用哪个方法。这只是python实现多态的一种
这里用到了super,其实在这里例子中没什么用处,只是用来说明子类如何调用父类的方法
Dog类的init方法可以如下实现
def __init__(self):
    Animal.__init__(self)
这样也可以,不过多数用super的方法好一点,因为这样至少子类和父类耦合没那么高,把父类的名字写到子类里面毕竟不是什么好事

本文出自 “只想简单” 博客,请务必保留此出处http://gmingzhe.blog.51cto.com/810664/163169

由参数传递实现的python多态相关推荐

  1. python 多态 协议详解

    这篇文章主要为大家介绍了python 多态 协议 鸭子类型,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助 接口(python 中的协议)的多种不同的实现方式即为多态.多态的作 ...

  2. python多态的概念_Python 多态

    Python 多态 一.多态 概念 允许将父对象设置成和一个或多个的他的子对象相等技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特征以不同的方式运作.简单来说:就是允许将子类型的指针赋值给父类 ...

  3. python 多态app_python 多态实例

    python 多态实例 # coding:utf-8 """ 多态(英语:Polymorphism),是指面向对象程序运行时,相同的消息可能会送给多个不同的类之对象, 而 ...

  4. Java多态 和 Python多态

    Java多态和Python多态 ava中的多态跟Python中的多态是有区别的. java中的多态定义: 多态存在的三个必要条件 一.要有继承: 二.要有重写: 三.父类引用指向子类对象 java 多 ...

  5. Python多态的两种实现形式

    说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 博客:https://blog.csdn.net/zhu6201976 一.Python多态 1.对象多态 ...

  6. 什么是多态,Python多态及用法详解

    什么是多态,Python多态及用法详解 在面向对象程序设计中,除了封装和继承特性外,多态也是一个非常重要的特性,本节就带领大家详细了解什么是多态. 我们都知道,Python 是弱类型语言,其最明显的特 ...

  7. python 多态app_多态简介 | Python从入门到精通:高阶篇之三十三-阿里云开发者社区...

    多态 多态是面向对象的三大特征之一. 多态从字面上理解是多种形态.例如:狗有多个种类(狼狗.藏獒.哈士奇.古代牧羊犬...). 一个对象可以以不同的形态去呈现. 我们先来定义两个类: class A: ...

  8. python 多态_Python中的多态

    面向对象的语言有四个特性,抽象.封装.继承和多态.在之前的文章中,给小伙伴们已经讲解了前三个.为什么要把多态放在最后一个讲呢?因为前面的三个特性是多态的基础,了解了前三个,了解多态就很容易啦~ 那么, ...

  9. python多态的例子_Python编程之多态用法实例详解

    本文实例讲述了Python编程之多态用法.分享给大家供大家参考.具体分析如下: 什么是多态?顾名思义,多态就是多种表现形态的意思.它是一种机制.一种能力,而非某个关键字.它在类的继承中得以实现,在类的 ...

最新文章

  1. 前端入门(雷云特效,css)
  2. 在 VC6 中使用 GdiPlus-使用
  3. OpenCV神经网络neural network的实例(附完整代码)
  4. 【maven插件】asciidoctor-maven-plugin:编译Asciidoc
  5. 在NS-3中安装可视化工具pyviz的一些问题的解决
  6. Sqoop export(Hive to MySQL) 的一些 reference
  7. Android模块化之MicroModule(微信Pins工程)
  8. OpenCv之图像形态学(笔记08)
  9. 我是学渣,非计算机专业,当年我如何零基础自学web前端成功的!
  10. C# 正则匹配 电话号码 和 座机号
  11. Google 宣布正式开源 Jib ,帮助 Java 应用快速容器化
  12. 计算机科学与工程国际研讨会,2018年北京计算机科学与技术国际研讨会
  13. WPF教程(一) WPF是什么?
  14. win7怎么查看计算机主板,win7系统电脑查看主板型号的四种方法介绍
  15. 挑战10的1,143,913次方种算法组合:这都不是事儿~~
  16. 微信小程序自定义组件使用阿里矢量图标库图标
  17. 学习系列--最优学习内容选择
  18. 用HTML编写携程旅行,StaticHtmlPage(仿照携程写的静态网页)
  19. 股票量化交易有什么优势?注意哪些风险?
  20. 苹果系统装win7教程

热门文章

  1. 灵石县“灵石酸枣仁”品牌正式发布,促进产业发展 助力乡村振兴
  2. 【转】可爱的 Python: 使用 setuptools 孵化 Python egg
  3. python异常数据处理_Python 异常处理和捕获信息教程
  4. c语言宇航员,云顶之弈:神超狙神宇航员阵容解析,薇恩复出重回云顶C位
  5. 怎么防止SQL注入?
  6. (源)VC助手VA破解使用指南
  7. 不需要库函数实现不依赖语言的RoundUp以及Round(四舍五入)
  8. python 经济论文_Python 为了提升性能,竟运用了共享经济
  9. 肾有多好就有多年轻—男女通用
  10. c++:有武器的角色类