# small example for inhiterance with polymorphism
|
|
# and duck typing as mostly better alternative
|
|
|
|
class AudioFile:
|
|
|
|
def __init__(self, filename):
|
|
if not filename.endswith(self.ext):
|
|
raise Exception("Invalid file format")
|
|
self.filename = filename
|
|
|
|
|
|
class MP3File(AudioFile):
|
|
|
|
ext = "mp3"
|
|
|
|
def play(self):
|
|
print("Playing {} as mp3".format(self.filename))
|
|
|
|
|
|
class WavFile(AudioFile):
|
|
|
|
ext = "wav"
|
|
|
|
def play(self):
|
|
print("Playing {} as wav".format(self.filename))
|
|
|
|
|
|
class OggFile(AudioFile):
|
|
|
|
ext = "ogg"
|
|
|
|
def play(self):
|
|
print("Playing {} as ogg".format(self.filename))
|
|
|
|
|
|
class FlacFile:
|
|
|
|
def __init__(self, filename):
|
|
if not filename.endswith(".flac"):
|
|
raise Exception("Invalid file format")
|
|
self.filename = filename
|
|
|
|
def play(self):
|
|
print("Playing {} as flac".format(self.filename))
|