因之前写的多态 的例子,似乎有点问题,现在重写改造了一下。"""

多态的特性是调用不同的子类将会产生不同的行为,而无需明确知道这个子类实际上是什么

"""

class AudioFile:

def __init__(self, filename):

if not filename.endswith(self.ext): #检测来自子类的ext变量是否以按指定的格式结尾,如果不是则引发异常(初始化音频文件需按指定的格式)

raise Exception("Invalid file format")

self.filename = filename

class MP3File(AudioFile):

ext = "mp3"

def play(self):

#mp3音频具体的处理细节

print("play %s music..." % self.filename)

class WavFile(AudioFile):

ext = "wav"

def play(self):

#wav音频具体的处理细节

print("play %s music..." % self.filename)

class OggFile(AudioFile):

ext = "ogg"

def play(self):

#ogg音频具体的处理细节

print("play %s music..." % self.filename)

class Player:

#这是一个播放器,用于播放不同格式的音频

def start(self, audio):

print("Initialize {0} format audio files".format(audio.ext))

print("Audio file: {0} playing".format(audio.filename))

audio.play()

if __name__ == '__main__':

#创建一个播放器

player = Player()

#创建3个不同格式的音频文件

ogg = OggFile("hello.ogg")

mp3 = MP3File("free abc.mp3")

wav = WavFile("love.wav")

#播放器播放音乐

player.start(ogg)

#看起来好像都是调用了同一个play()方法,但每不同格式的音频文件所实现的功能是不同的

python 多态app_Python——多态相关推荐

  1. python 多态app_python 多态

    class xiaobai: def say(self): print("调用的是xiaobai类的say方法") class lilei(xiaobai): #lilei类继承x ...

  2. python 多态app_python 多态实例

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

  3. python 继承和多态

    python 继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Ba ...

  4. Python的继承多态

    Python的继承多态 文章目录 Python的继承多态 一.私有属性和私有方法 01. 应用场景及定义方式 02. 伪私有属性和私有方法 二.单例 01. 单例设计模式 单例设计模式的应用场景 02 ...

  5. python多态_多态是什么?为什么要使用多态?

    多态 所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态 ,多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚"鸭子类型". 鸭子类型:虽然我想要一只& ...

  6. python中的多态用法_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  7. python继承和多态心得_python学习第十五天 -面向对象之继承和多态

    大家都知道面向对象的三大特性:封装,继承,多态.封装特性在上一章节已经讲解过.这一章节主要讲解继承和多态. 继承:当定义一个类的时候,可以从现有的类进行继承.那么新定义的类可以称为子类,被继承的现有的 ...

  8. Python面向对象编程---多态

    Python面向对象编程-多态 定义: 是一种使用对象的方式,子类重写父类的方法(非必须),调用不同子类对象的相同父类方法,可以产生不同的执行结果,简言之就是:传入不同的对象,产生不同的结果. 好处: ...

  9. python封装继承多态_Python:封装、继承、多态、私有成员

    Python作为一种面向对象语言,也有着面向对象的三种特性:封装.继承.多态. 封装: 将事物相关的属性和方法封装在某一个类里面,使得在调用类创建实例时,可以不用关心类内部的实现细节. 类的本质: 1 ...

最新文章

  1. linux share目录 多个机器访问,如何在linux下网上邻居访问另一台机windows共享的目录?(急)...
  2. 特征工程学习,19 项实践 Tips!代码已开源!
  3. 《圣殿祭司的ASP.NET4.0专家技术手册》---- 1-13 ClientBuilderManager类别的编译功能...
  4. 备份----硬盘对拷
  5. mysql是面向对象的语言吗_php一种面向对象的语言,那么什么是面向对象呢?
  6. leetcode 1143. 最长公共子序列
  7. 文顶顶 iOS开发UI篇—UITabBarController简单介绍 iOS开发UI篇—UITabBarController简单介绍...
  8. Mysql基本用法-left join、right join、 inner join、子查询和join-02
  9. 算法面试:精选微软等公司经典的算法面试100题 第26-35题
  10. 相关系数矩阵计算_corrplot包:相关性矩阵可视化
  11. 拼多多上线直播、火车票业务引关注,回应:仅是两个服务插件
  12. AtomicStampedReference
  13. MySQL 5.7详细下载安装配置教程
  14. (转)996下的程序员,该如何保证自己的身体健康?
  15. 云手机虚拟机服务器配置,云手机虚拟机服务器
  16. HDU 1847 ——Good Luck in CET-4 Everybody!
  17. 【SAP Basis】SAP用户账号管理
  18. 内联函数let、also、with、run、apply的用法
  19. HEIC文件怎么打开,如何将HEIC格式转换为JPG格式
  20. 后端jar包 设置成服务 开机自启动

热门文章

  1. 为macbook双系统的windows装驱动
  2. 超简单修改权限破解typora beta版本(备忘)
  3. 浅谈你们根本不懂的区块链游戏
  4. 线上培训上课实录整站设计制作开发全能培训-彭亮-专题视频课程
  5. 第三代测序成本偏高是什么原因导致的? 是看了这道题下面的邹捷萌回答:现在基因测序的瓶颈主要在哪里?精度?速度? 在精确度方面第三代测序已经很高了,但目前国内生物实验室的测序还是以二代为主,推测成本可能
  6. 猪猪侠的黑客学习路线
  7. python 百度云搜索引擎入口_2016最新百度云网盘搜索引擎源码,附带Python爬虫+PHP网站+Xunsearch搜索引擎...
  8. python tornado异步_python tornado异步性能测试
  9. 神一般的科学“超人”尼古拉-特斯拉!
  10. SAP S4 库存管理 技术分享