前提・実現したいこと
画像の状態機械図をStateパターンで表したいです。
ここに質問の内容を詳しく書いてください。
pythonでStateパターンを作っています。コードを書いてみましたがそもそもの理解が追いついていないためエラーが解決できません。コードの改善点と分かりやすい記事などあったら教えていただきたいです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ Traceback (most recent call last): File "ipod-state.py", line 50, in <module> ipod.allRepeat() File "ipod-state.py", line 40, in allRepeat self.state.allRepeat(self) AttributeError: 'function' object has no attribute 'allRepeat'
該当のソースコード
python ソースコード class RepeatState(): @staticmethod def setState(ipod, state): ipod.setState(state) def norepeat(self, ipod): pass def allrepeat(self, ipod): pass def onerepeat(self, ipod): pass class noRepeat(RepeatState): def allRepeat(self, ipod): print('全曲リピート') RepeatState.setState(ipod, iPod.all_repeat) class allRepeat(RepeatState): def oneRepeat(self, ipod): print('1曲リピート') RepeatState.setState(ipod, iPod.one_repeat) class oneRepeat(RepeatState): def noRepeat(self, ipod): print('リピートなし') RepeatState.setState(ipod, iPod.no_repeat) class iPod(): no_repeat = noRepeat() all_repeat = allRepeat() one_repeat = oneRepeat() def __init__(self): self.state = iPod.noRepeat def setState(self, state): self.state = state def allRepeat(self): self.state.allRepeat(self) def oneRepeat(self): self.state.oneRepeat(self) def noRepeat(self): self.state.noRepeat(self) ipod = iPod() ipod.allRepeat() ipod.oneRepeat()
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。