0

我正在用 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):
      # .

..

4

1 回答 1

0

做到这一点的方法是有一个Menu只提供行为的基类——例如展示自己、下拉菜单、将附加菜单弹出到右侧、隐藏自己等。

然后让子类包含每个菜单实例的实际数据。

于 2016-03-29T05:20:06.820 回答