Я пишу небольшую программу, которая печатает экран меню со списком опций. Если вы выберете один из вариантов, экран очистится и вы попадете в следующее меню.
Сейчас я создал базовый класс Menu и дал ему метод draw()
, который рисует опции. Затем я хочу добавить другой метод handle_options()
, который принимает пользовательский ввод, а затем предлагает пользователю соответствующий выбор.
В данный момент я создаю серию подклассов, таких как class MainMenu(Menu)
и class OptionsMenu(Menu)
. Когда handle_options()
находится в цикле, я создам экземпляр соответствующего класса Menu и нарисую его, а затем переключусь на выбор параметров.
Но дело в том, что я не хочу определять этот метод handle_options()
для каждого варианта Menu. Поэтому я спрашиваю:
а) Есть ли шаблон дизайна или лучший способ сделать такое, чему я могу научиться?
b) Могу ли я использовать что-то вроде getattr(self, "myfunc")()
для вызова имени функции, которое я сохранил в массиве, чтобы я мог обобщить метод handle_options()
и определить его в базовом классе меню, а не для каждого подкласса?
tl; dr - Какие примеры или шаблоны можно использовать для построения простой текстовой системы меню?