私はオプションのリストをメニュー画面に表示する小さなプログラムを書いています。いずれかのオプションを選択すると、画面はクリアされ、次のメニューに移動します。Pythonで一連のテキストメニューを作成するには
今、基本メニュークラスを作成し、オプションを描画するメソッドdraw()
を与えました。次に、別の方法handle_options()
を追加して、ユーザーの入力を受け取り、ユーザーを適切な選択肢に振りかざします。
現時点では、class MainMenu(Menu)
とclass OptionsMenu(Menu)
のような一連のサブクラスを作成しています。 handle_options()
がループしているときは、適切なMenuクラスのインスタンスを作成して描画し、オプションの選択肢にループします。
しかし、事実ですが、私はこのhandle_options()
メソッドをMenuの各変形に対して定義する必要はありません。だから私は尋ねます:
a)私が学ぶことができるこの種のことをするためのデザインパターンやより良い方法がありますか?
b)getattr(self, "myfunc")()
のようなものを使用して、配列に格納された関数名を呼び出すことができます。handle_options()
メソッドを汎用化し、各サブクラスではなく基本メニュークラスで定義できますか?
tl; dr - 単純なテキストベースのメニューシステムを構築するために、どのような例やパターンを使用できますか?
テキストの説明を提供するためにself._optionsをどのように拡張できますか? – dman