Day 122コマンド履歴をスタックで管理するCLI
Pythonコード
1class CLI:2 def __init__(self):3 self.history = []4 5 def run(self):6 while True:7 try:8 command = input("コマンドを入力してください: ")9 self.history.append(command)10 print("コマンド履歴: ", self.history)11 except Exception as e:12 print("エラーが発生しました: ", str(e))13 14 def get_history(self):15 return self.history16 17def main():18 cli = CLI()19 cli.run()20 21if __name__ == "__main__":22 main()
解説
- 行1〜3: CLIクラスを定義し、コンストラクタでhistoryリストを初期化します。historyリストは、ユーザーが入力したコマンドを保存するために使用されます。組み込み関数__init__は、クラスのインスタンスが生成されたときに自動的に呼び出されます。
- 行5〜10: runメソッドで、ユーザーからコマンドを入力を受け付け、入力されたコマンドをhistoryリストに追加します。入力されたコマンドは、historyリストに保存され、現在のコマンド履歴が表示されます。組み込み関数input()は、ユーザーから入力を受け付ける関数です。組み込み関数print()は、画面に文字や値を表示する関数です。
- 行11〜12: get_historyメソッドで、現在のコマンド履歴を取得します。組み込み関数returnは、関数の実行結果を返す関数です。
- 行14〜16: main関数で、CLIクラスのインスタンスを生成し、runメソッドを呼び出します。組み込み関数if __name__ == "__main__":は、スクリプトが直接実行されたときにmain関数を呼び出す関数です。
- 行6〜9: 補足: try-exceptブロックは、エラーが発生したときにエラーを捕捉し、エラー処理を実行する構文です。
次に試してみよう
- コマンド履歴を保存するために、ファイルに保存する機能を追加してみましょう。
- コマンド履歴を表示する際に、最新のコマンドを先頭に表示するように変更してみましょう。
- コマンド履歴を検索する機能を追加してみましょう。