101日目:Pythonプログラミング
Pythonプログラミングの講義35日目です。
今日の講義は、オブジェクトについて。内職はDjangoアプリバグ調査。
【講義内容】
- オブジェクト
【ワンポイント】
abc_player.py
from abc import ABC, abstractmethod class Player(ABC): @abstractmethod def play(self): pass @abstractmethod def stop(self): pass @abstractmethod def eject(self): pass @abstractmethod def next(self): pass @abstractmethod def prev(self): pass class CDPlayer(Player): def __init__(self, maker, name, model): self.maker = maker self.name = name self.model = model self.play_list = [] self.now_play = 0 self.playing = False def play(self): if not self.playing and len(self.play_list): self.playing = True print(f'PLAY: {self.play_list[self.now_play]}') def stop(self): if self.playing and len(self.play_list): self.playing = False print(f'STOP: {self.play_list[self.now_play]}') def eject(self, play_list=None): if play_list is not None: self.play_list = play_list self.now_play = 0 print(f'INSERT: {self.play_list}') else: self.play_list = [] self.now_play = 0 print(f'EJECT: No media.') def next(self): if len(self.play_list): self.now_play = (self.now_play+1) % len(self.play_list) print(f'NEXT: {self.play_list[self.now_play]}') def prev(self): if len(self.play_list): self.now_play = self.now_play-1 if self.now_play>0 else len(self.play_list)-1 print(f'PERV: {self.play_list[self.now_play]}') if __name__ == "__main__": cdp = CDPlayer('SOMY', 'Aroundman', 'S905-A') cdp.eject(['きょうりゅうのマーチ', 'ブイサイン', '炎上']) cdp.play() cdp.next() cdp.next() cdp.stop() cdp.next() cdp.play() cdp.prev() cdp.prev() cdp.prev() cdp.eject() cdp.eject() cdp.next() cdp.play() cdp.prev() cdp.eject() cdp.stop()
【今日の積み上げ】
- Pythonの基礎