分享python中鸭子类和多态实例

下面小编就为大家带来一篇老生常谈python之鸭子类和多态。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

一、 什么是多态

一种类型具有多种类型的能力
允许不同的对象对同一消息做出灵活的反应
以一种通用的方式对待个使用的对象
非动态语言必须通过继承和接口的方式来实现

二、 python中的多态

通过继承实现多态(子类可以作为父类来使用)子类通过重载父类的方法实现多态class Animal:  def move(self):    print('animal is moving....')class Dog(Animal):  passdef move(obj):  obj.move()>>>move(Animal())>>>animal is moving....>>>move(Dog())>>>animal is moving....class Fish(Animal):  def move(self):    print('fish is moving....')>>>move(Fish())>>>fish is moving....

登录后复制

三、 动态语言和鸭子类型

立即学习“Python免费学习笔记(深入)”;

变量绑定的类型是不确定的

函数和方法可以接收任何类型的参数

调用方法时不检查提供的参数类型

调用是否成功有参数的方法和属性确定,调用不成功则抛出错误

不用实现接口

class P:  def init(self, x, y):    self.x = x    self.y = y  def add(self, oth):    return P(self.x+oth.x, self.y+oth.y)  def info(self):    print(self.x, self.y)class D(P):  def init(self, x, y, z):    super.init(x, y)    self.z = z  def add(self, oth):    return D(self.x+oth.x, self.y+oth.y, self.z+oth.z)  def info(self):    print(self.x, self.y, self.z)class F:  def init(self, x, y, z):    self.x = x    self.y = y    self.z = z  def add(self, oth):    return D(self.x+oth.x, self.y+oth.y, self.z+oth.z)    def info(self):    print(self.x, self.y, self.z)  def add(a, b):  return a + bif name == 'main':  add(p(1, 2), p(3, 4).info())  add(D(1, 2, 3), D(1, 2, 3).info())  add(F(2, 3, 4), D(2, 3, 4).info())

登录后复制

四、 多态的好处

可实现开放的扩展和修改的封闭

使python程序更加的灵活

以上就是分享python中鸭子类和多态实例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2270820.html

(0)
上一篇 2025年2月27日 11:53:19
下一篇 2025年2月27日 00:30:39

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python模拟登陆实例详解

    本篇文章主要介绍了python模拟登陆实现代码,这里整理了详细的代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下面分享一个使用Python进行网站模拟登陆的小例子。 原理 使用Cookie技术,绕开网站登录验证。要使用到cooki…

    2025年2月27日
    200
  • Python字符串处理实例详解

    这篇文章主要为大家详细介绍了python字符串处理实现单词反转的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Python字符串处理学习中,有一道简单但很经典的题目,按照单词对字符串进行反转,并对原始空格进行保留: 如:‘ I l…

    编程技术 2025年2月27日
    200
  • 详解Python中的字符编码

    下面小编就为大家带来一篇老生常谈python基础之字符编码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 前言 字符编码非常容易出问题,我们要牢记几句话: 1.用什么编码保存的,就要用什么编码打开 2.程序的…

    2025年2月27日
    200
  • 介绍一款Python打包工具(py2exe)

    下面小编就为大家带来一篇python之py2exe打包工具详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 下载Python对应版本的py2exe,使用这个工具可以将自己的程序打包成exe文件。 使用这个工…

    编程技术 2025年2月27日
    200
  • 如何处理稀疏矩阵?python实现稀疏矩阵教程

    本篇文章主要介绍了python实现稀疏矩阵示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 工程实践中,多数情况下,大矩阵一般都为稀疏矩阵,所以如何处理稀疏矩阵在实际中就非常重要。本文以Python里中的…

    2025年2月27日
    200
  • python中多进程和进程池(Processing库)的实例代码

    本篇文章主要介绍了详解python之多进程和进程池(processing库),非常具有实用价值,需要的朋友可以参考下 环境:win7+python2.7 一直想学习多进程或多线程,但之前只是单纯看一点基础知识还有简单的介绍,无法理解怎么去应…

    2025年2月27日
    200
  • 详解python装饰器的实例教程

    python中的装饰器是你进入python大门的一道坎,不管你跨不跨过去它都在那里。python中的装饰器的概念经常会让人搞得一头雾水,所以今天就好好来分析一下python中的装饰器 1.作用域  在python中,作用域分为两种:全局作用…

    编程技术 2025年2月27日
    200
  • Python中os操作方法的实例教程

    下面小编就为大家带来一篇python之os操作方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 1. os.path.driname(path):返回路径的上一级路径字符串。   >>&…

    编程技术 2025年2月27日
    200
  • 总结Python中用QRCode生成二维码的实例代码

    这篇文章主要介绍了python使用qrcode模块生成二维码实例详解的相关资料,需要的朋友可以参考下 Python使用QRCode模块生成二维码 QRCode官网 pypi.python.org/pypi/qrcode/5.1 简介 立即学…

    编程技术 2025年2月27日
    200
  • 关于python如何实现各进制转换的总结大全

    这篇文章主要给大家总结了python实现各进制转换的相关资料,其中包括字符串与十六进制转换、内置函数hex()与进制互转等相关内容,需要的朋友可以参考借鉴,下面来一起看看吧。 前言 玩ctf经常遇到进制转换的问题,就正好做一个进制转换总结,…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论