python 多态app_Python——多态

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

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

"""

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()方法,但每不同格式的音频文件所实现的功能是不同的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值