我在Python中创建了一系列文本菜单。我在Python约定中被告知我应该只为需要维护和操作的数据成员创建类/对象。要做到这一点,我不确定.....下面是否合适,或者是否会创建一个基本功能,然后根据哪个菜单更好地进行装饰?
class Menu(object):
def __init__(self):
# Ideally, self._options would be an empty dict for the base class.
# This is just for the sake of example.
self._options = {'a': self.optionA,
'b': self.optionB}
def handle_options(self, option):
if option not in self._options:
print "Invalid option"
# re-draw
return
self._options[option]()
def optionA(self):
print "option A"
def optionB(self):
print "option B"
class SubMenu(Menu):
def __init__(self):
Menu.__init__(self)
self._options = {'c': self.optionC,
'd': self.optionD}
def optionC(self):
# ...
def optionD(self):
# .
...
答案 0 :(得分:0)
执行此操作的方法是拥有一个仅提供行为的Menu
基类 - 例如展示自己,下拉菜单,将附加菜单弹出到右侧,隐藏本身等等。
然后让子类包含每个菜单实例的实际数据。